728x90
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for(int s=i; s<=j; s++){
int num = s;
while(num>0){
if(num%10==k) answer++;
num/=10;
}
}
return answer;
}
}
i부터 j까지의 숫자 중 k가 있으면 카운트1 증가시켜주는 문제이므로
for문의 범위를 i 부터 j까지 하고
i부터 시작하기 때문에 s=i 초기화 후 s를 로직에 그대로 사용하면 잘못된 풀이다.
왜냐하면 밑에 while에서 해당 숫자를 %하고 다시 /해서 사용하는데 s를 그대로 사용하면 for문의 조건식에 큰 영향을 미치기 때문이다.
따로 num이라는 변수에 그때그때 s를 담아서 사용해주면 해결할 수 있다.
반응형
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스] Lv.0 진료순서 정하기** (0) | 2022.12.19 |
|---|---|
| [프로그래머스] Lv.0 가까운 수 (1) | 2022.12.15 |
| [프로그래머스] Lv.0 2차원으로 만들기* (0) | 2022.12.15 |
| [프로그래머스] Lv.0 팩토리얼 (0) | 2022.12.01 |
| [프로그래머스] Lv.0 A로 B 만들기 (0) | 2022.12.01 |
댓글