[20231109] Lv 1. 자릿수 더하기

일단 기록하기·2023년 11월 27일

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

자연수 n의 모든 자릿수를 더하는 문제이다. 반환값은 int이다.

[나의 풀이]

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

        String[] arr = String.valueOf(n).split("");
        
        for(String s : arr) {
            answer += Integer.parseInt(s);
        }

        return answer;
    }
}
  • 자릿수를 각각 분리하기 위해 split()을 사용하려고한다. n을 String으로 바꾸기 위해 int n을 String.valueOf() 를 사용해 String으로 바꿔주었다.
  • String으로 변환한 n을 split("")을 이용해 문자열 배열로 반환받고, 이것을 for-each 문을 돌린다.
  • for-each 문에서 사용되는 하나의 String s를 Integer.parseInt() 를 사용해서 정수로 변환하고, 변수 answer 에 누적 합산한다.

[다른 풀이]

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

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

        return answer;
    }
}
  • String으로 변환 없이 문제를 풀어봤다.
  • answer에 일의 자리수를 세팅하고, 나머지 자리수는 while문을 통해 합산했다.
  • n을 10으로 나눠서 다시 n에 세팅하고 while문이 종료될 때까지 진행한다.
  • 10으로 나눈 나머지는 answer에 합산시킨다.
profile
모르는 건 일단 기록이라도 해놔야

0개의 댓글