[프로그래머스/Java] Lv.0 9로 나눈 나머지

febCho·2024년 3월 5일
0

코딩테스트

목록 보기
39/253
post-thumbnail

문제

음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.
이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.

- 제한사항

  • 1 ≤ number의 길이 ≤ 100,000
  • number의 원소는 숫자로만 이루어져 있습니다.
  • number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다.

풀이

- 오답

처음에는 장황한 문제 속에서 결국 주어진 String number를 정수형으로 변환한 다음 9로 나눈 나머지 구하라는 거 아냐? 해서 아래와 같이 문제를 풀었다.

그런데 두 번째 테스트 케이스 통과에 '실행한 결괏값 0이 기댓값 2과 다릅니다.'를 이유로 실패했다. 그래서 입출력 예시와 같이 주어진 정수의 각 자릿수 값들을 더한 다음 9로 나눈 나머지를 return하는 방식으로 코드를 바꾸었다.

class Solution {
    public int solution(String number) {
        int answer = 0;
        
        try{
            answer = Integer.parseInt(number) % 9;
        }catch(NumberFormatException e){
            
        }
        return answer;
    }
}

- 정답

class Solution {
    public int solution(String number) {
        int answer = 0;
        String[] numberArr = number.split("");
        
        for(int i=0;i<numberArr.length;i++){
            answer += Integer.parseInt(numberArr[i]);
        }
        
        return answer%9;
    }
}

결과

profile
Done is better than perfect.

0개의 댓글