728x90
반응형
문제 설명
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
제한 사항
1 ≤ i < j ≤ 100,000
0 ≤ k ≤ 9
입출력 예
i j k result
1 13 1 6
10 50 5 5
3 10 2 0
입출력 예 설명
입출력 예 #1
본문과 동일합니다.
입출력 예 #2
10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다.
입출력 예 #3
3부터 10까지 2는 한 번도 등장하지 않으므로 0을 return 합니다.
내 풀이
Java
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for(int a = i; a <= j; a++){
int b = a;
while(true){
if(b == 0) break;
if(b % 10 == k) answer++;
b /= 10;
}
}
return answer;
}
}
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
String n = String.valueOf(k);
for(int a = i; a <= j; a++){
String v = String.valueOf(a);
if(v.contains(n)){
String[] arr = v.split("");
for(String m : arr){
if(m.equals(n)) answer++;
}
}
}
return answer;
}
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int i, int j, int k) {
int answer = 0;
char n = k + '0';
for(int a = i; a <= j; a++){
int b = a;
while(1){
if(b == 0) break;
if(b % 10 == k) answer++;
b /= 10;
}
}
return answer;
}
Python
def solution(i, j, k):
answer = 0
for a in range(i, j + 1):
b = a
while True:
if b == 0:
break
if b % 10 == k:
answer += 1
b = int(b / 10)
return answer
def solution(i, j, k):
answer = 0
for a in range(i, j + 1):
v = str(a)
if str(k) in v:
arr = list(v)
for b in arr:
if int(b) == int(k):
answer += 1
return answer
728x90
반응형
'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글
[코딩테스트 Lv.0] 삼각형의 완성조건 (1) (0) | 2024.03.13 |
---|---|
[코딩테스트 Lv.0] 중복된 문자 제거 (0) | 2024.03.13 |
[코딩테스트 Lv.0] A로 B 만들기 (0) | 2024.03.12 |
[코딩테스트 Lv.0] 이진수 더하기 (0) | 2024.03.12 |
[코딩테스트 Lv.0] 치킨 쿠폰 (0) | 2024.03.09 |