。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

ㅋㅌ

i부터 j까지 k가 몇 번 등장하는지// Integer.toString() / toCharArray()

quarrrter 2023. 6. 13. 20:46

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

class Solution {
    public int solution(int i, int j, int k) {
        char K = (char) ('0' + k);  // k를 ASCII 코드로 변환하여 char K에 저장
        int result = 0;
        
        for (int n = i; n <= j; ++n) {
            for (char ch : Integer.toString(n).toCharArray()) {
            //Integer.toString를 통해 숫자를 문자열로 변환
            //.toCharArray()를 통해 문자열를 문자배열로 변환
                if (ch == K) {
                    ++result;
                }
            }
        }
        return result;
    }
}

foreach 말고 풀어쓰면 : 

String numString = Integer.toString(n); // 현재 숫자 n을 문자열로 변환
char[] charArray = numString.toCharArray(); // 문자열을 문자 배열로 변환

for (int index = 0; index < charArray.length; index++) {
    char ch = charArray[index]; // 현재 문자 ch

 

ASCII 코드

정수와 문자 간의 변환은 ASCII 코드를 기반으로 동작합니다. 정수 값과 해당하는 ASCII 문자 사이의 관계는 다음과 같습니다:

정수 값에 0을 더하면, 해당하는 ASCII 코드 값을 얻을 수 있습니다.
ASCII 코드 값에 0을 빼면, 해당하는 정수 값을 얻을 수 있습니다.
예를 들어, 정수 65는 ASCII 코드에서 대문자 'A'를 나타내는 값입니다. 정수 65에 0을 더하면, ASCII 코드 값인 65를 얻을 수 있습니다. 마찬가지로, ASCII 코드 값 65에 0을 빼면 정수 값 65를 얻을 수 있습니다.