코딩테스트/프로그래머스 입문
[코딩테스트 Lv.0] k의 개수
블루데이제이
2024. 3. 12. 19:31
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
반응형