본문 바로가기
CodingTest/Programmers

[프로그래머스] LV.0 k의 개수

by yoondoo 2022. 12. 15.
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를 담아서 사용해주면 해결할 수 있다.

반응형

댓글