자바 문제 풀이/기초문제

[프로그래머스 자바] 9로 나눈 나머지

ari0930 2024. 3. 12. 14:47

[프로그래머스 자바] 9로 나눈 나머지

 

문제

음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같다

이를 이용하여 음이 아닌 정수가 문자열로 주어질 때 이 정수를 9로 나눈 나머지를 return 하여라

입출력

풀이

문자열의 길이가 정수타입이 담을수 있는 값보다 클 수도 있기에 각자릿수 합을 구해서 9로 나눈 나머지를 구해야 한다 

 

내가 생각하기에 방법은 2가지가 있었다 

첫번째 방법으로는 문자열을 charAt()를 축출하고 축출한 값을 정수로 바꾸어 합을 구하는 방법이다

이때 문자형을 정수형을 바꾸기 위해서는 Character.getNumbericValue()를 사용해야 한다 

 

두 번째 방법은 문자열을 charAt로 축출 후 숫자로 변형 없이 더하는 방식이다 이때 주의해야 할 점은

문자형을 정수형에 집어넣으면 유니코드값으로 바꿔주며,   

문자'0'부터 순서대로 유니코드 값이 증가함으로 문자'0'을 빼주면 0부터 9까지 정수로 변환이 가능하다 

 

코드

첫 번째 방법

class Solution {
    public int solution(String number) {
        int answer =0;
        for (int i =0 ; i<number.length(); i++){
            char a = number.charAt(i);
            answer+=Character.getNumericValue(a);

        }
        return answer%9;
    }
}

 

두 번째 방법

class Solution {
    public int solution(String number) {
        int answer =0;
        for (int i =0 ; i<number.length(); i++){
            char a = number.charAt(i);
            answer+=a-'0';

        }
        return answer%9;
    }
}
반응형