본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] k의 개수

by dantriss 2023. 3. 7.


https://school.programmers.co.kr/learn/courses/30/lessons/120887

 

정수 i~j 까지를 구해야하기 때문에 반복문을 사용해 i~j까지

String 변수명 st에 Integer.toString()을 이용해 형변환 후 넣어주자.

이러면 st에는 값들이 계속 덮어 씌워지는 셈이니 이 반복문 안에서 문제를 해결하자.

반복문안에 0부터시작해서 st의 길이만큼 반복하는 반복문을 작성한다.

이 st 안에 정수 k 가 존재하면 된다.

st는 String, k는 int이므로 둘을 비교하기 위해선 k를 아까 사용했던 Integer.toString()을 활용해 형변환 후 .equals를 이용해 

st에 있는 문자들이 k와 일치하는지 알아보자

그런데 문제 조건에 의해 만약 k가 1인경우에 st가 11인경우는 1이 총 2번 들어간것이기 때문에 한번 더 등장한다고 봐야한다.

그래서 st를 substring(시작할index,종료할 index)을 이용해 2개로 쪼개보자.

substring을 사용하자 2자리 수 들이 십의자리와 일의자리로 나뉘어서 출력된다.

이제 이 나뉘어진 글자들과 k가 같다면 그 수 만큼 answer를 증가연산자를 이용해 증가시킨 후 리턴한다.

 

 

 

class Solution {
    public int solution(int i, int j, int k) {
        int answer = 0;
        
        for(int a=i; a<=j; a++){
            String st = Integer.toString(a);
            for(int b =0; b<st.length(); b++){
                if(Integer.toString(k).equals(st.substring(b,b+1))){
                    answer ++;
                }
            }

        }
        
        return answer;
    }
}

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 진료 순서 정하기  (0) 2023.03.13
[Lv.0] 2차원으로 만들기  (0) 2023.03.10
[Lv.0] A로 B 만들기  (0) 2023.03.06
[Lv.0] A로 B 만들기  (0) 2023.03.06
[Lv.0] 모스부호(1)  (0) 2023.03.03

댓글