극동대학교\AI컴퓨터공학과\JAVA/프로그래머스 코딩 기초 트레이닝

[프로그래머스, LV.0] 9로 나눈 나머지

sundori 2023. 6. 22. 18:32

목차

     

    #1 9로 나눈 나머지

    문제 설명

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

    제한사항

     

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

    입출력 예

    number result
    "123" 6
    "78720646226947352489" 2

    #2 코드 및 알고리즘

    import java.util.concurrent.atomic.AtomicInteger;
    import java.util.stream.IntStream;
    class Solution {
        public int solution(String number) {
            AtomicInteger sum = new AtomicInteger();
            IntStream.range(0, number.length()).forEach( (e) -> {
                sum.addAndGet(Integer.parseInt(String.valueOf(number.charAt(e))));
            });
            /*for(int i = 0; i < number.length(); i++)
                sum += Integer.parseInt(String.valueOf(number.charAt(i)));*/
            return sum.get() % 9;
        }
    }

    풀이:

    • 문자열에서 모든 인덱스 안의 값들의 합을 구한다.
    • 그 이후에 값들의 합을 9로 나누어 나머지를 구하여 반환한다.