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

jaei kim·2023년 9월 10일
0

코딩테스트

목록 보기
4/14

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

🤔 첫 번째 풀이

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        String s = Integer.toString(n);
        for(int i = 0; i < s.length(); i++){
          int N = Integer.parseInt(s.charAt(i));
            answer+= N;
        }

        return answer;
    }
}

뭐가,,,잘못이지 한참을 바라보았다.
찾아보니 Integer.parseInt이 메서드는 Stringint로 변환하는 메서드인데 나는 charAt를 사용하여 하나의 문자만 넘겨준 것이 문제였다.

👉 나의 정답

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        String s = Integer.toString(n);
        for(int i = 0; i < s.length(); i++){
          int N = Integer.parseInt(String.valueOf(s.charAt(i)));
            answer+= N;
        }

        return answer;
    }
}

그래서 문자로 변환한 것을 문자 하나하나로 쪼갠 것을 다시 문자열로 만들어서 더해주는 방법을 사용하였다.
정답은 나왔지만 사라지지 않는 찝찝함에 다른 사람 코드를 한번 보았다.

👍 내가 생각하는 Best 정답

import java.util.*;

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

        while(true){
            answer+=n%10;
            if(n<10)
                break;

            n=n/10;
        }

        return answer;
    }
}

이 사람은 while문을 활용하여 n이 10보다 작을 때 까지 10으로 나눈 나머지를 answer에 더하는 방식을 사용하였다.

나는 while문을 잘 쓰는 사람이 참 멋져보인다.
나도 while문을 조금 더 활용하도록 노력해야겠다.

profile
@studing_dobby

0개의 댓글