9로 나눈 나머지

gotcha!!·2023년 8월 5일
0

코딩테스트

목록 보기
22/36

문제

내 코드

class Solution {
    public int solution(String number) {
        int answer = 0;
        int num = 0;
        for(int i = 0; i<number.length(); i++){
            num += number.charAt(i);
        }
        return answer = num % 9;
    }
}

이렇게 해주면 당연히 안된다.

이 코드의 큰 문제점은
ASCII의 값을 num에 대입시킨다.

그래서 예를 들어, "123"이 있다면
문자 '1'은 49 문자 '2'는 50 '3'은 51
이렇게 되어서
결국 num에는 150이라는 숫자가 대입이 된다.

paserInt로 할 수 있지만 다른 방법으로 해봤다.

class Solution {
    public int solution(String number) {
        int answer = 0;
        int num = 0;
        for(int i = 0; i < number.length(); i++) {
            num += Character.getNumericValue(number.charAt(i)); 
            // 문자를 숫자로 변환하여 더함
        }
        answer = num % 9;
        return answer;
    }
}
profile
ha lee :)

0개의 댓글