코딩테스트/프로그래머스

[프로그래머스 - 12931] 자릿수 더하기

haenni 2024. 8. 11. 16:23

👩‍💻  프로그래머스  Level.1 -  12931


📌  문제

✏️ 자릿수 더하기

: https://school.programmers.co.kr/learn/courses/30/lessons/12931

 

 

✏️ 문제풀이

:문제를 풀어보자 ~!

class Solution {
    public static int solution(int n) {
        int answer = 0;

        String result = String.valueOf(n);
        String[] split = result.split("");

        for(String s : split){
            answer += Integer.parseInt(s);
        }

        return answer;
    }

    public static void main(String[] args) {
        System.out.println(solution(987));

    }
}
나는 문제를 풀 때, 형변환을 통해서 문제를 해결하였다.
받아온 int n의 값을 String으로 형변환 한 뒤, split으로 문자열을 하나하나 나누어 배열에 담아주었고 for문을 돌려서 int형으로 형변환하여 결과값인 answer에 하나하나 더해주었다.

 

 

 

 

✏️ 다른 사람의 풀이를 확인한 후 Develop

: 수학연산을 통해 문제를 해결하는 방법

class Solution {
    public static int solution(int n) {
        int answer = 0;

        while (n != 0) {
            answer += n % 10;

            n /= 10;
        }

        return answer;
    }
다른 사람의 풀이를 확인하였을 때, 간단하게 수학연산만을 통해 문제를 해결하는 방법이 있어 참고해보았다.

n의 값이 0이 될 때까지 반복문을 돌리며 answer의 값에 n을 10으로 나눈 나머지 값을 계속 더해주고
n의 값을 10으로 나눠 소수점을 버린 값을 n에 저장해줬다.



ex)  n = 1234일 경우 while 반복문이 어떻게 실행되는지 단계별로 살펴보자
초기 상태:n = 1234 answer = 0

첫 번째 반복: n % 10 = 1234 % 10 = 4
answer += 4 → answer = 4
n /= 10 = 1234 / 10 = 123

두 번째 반복: n % 10 = 123 % 10 = 3
answer += 3 → answer = 7
n /= 10 = 123 / 10 = 12

세 번째 반복: n % 10 = 12 % 10 = 2
answer += 2 → answer = 9
n /= 10 = 12 / 10 = 1

네 번째 반복: n % 10 = 1 % 10 = 1
answer += 1 → answer = 10
n /= 10 = 1 / 10 = 0

종료 조건:n = 0이므로 while 반복문이 종료된다.