프로그래머스 코딩(자바)/Level 1

Programmers Level 1 - 자릿수 더하기

kjwc 2023. 3. 8. 14:05
728x90

문제 설명

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

제한사항
  • N의 범위 : 100,000,000 이하의 자연수

 

입출력 예

N answer
123 6
987 24

입출력 예 설명

입출력 예 #1
문제의 예시와 같습니다.

 

입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

 

1
2
3
4
5
6
7
8
9
10
public class Solution {
    public int solution(int n) {
        int answer = 0;
        while(n>0) {
            answer += n%10;
            n /= 10;
        }
        return answer;
    }
}
cs

 

  %10을 하여 1의 잘 숫자를 얻어 더하고

  /10을 하여 1의 자리를 버린다.

  위의 과정을 하다보면 몫이 0이 된다.  그러므로 0이될때까지 반복한다.

  정수 나누기 정수의 결과는 정수이기 때문에 가능하다.

 

1
2
3
4
5
6
import java.util.Arrays;
public class Solution {
    public int solution(int n) {
       return Arrays.stream((n+"").split("")).mapToInt(v -> v.charAt(0)-'0').sum();
    }
}
cs

 

  자연수 + ""을 하며 문자열을 만들고 split("")메서드를  호출하여 1글자씩 잘라 배열을 만든다.

  배열을 Stream으로 만들고 mapToInt()메서드를 이용하여 각각의 요소들을 숫자로 만들고

  sum()메서드를 호출하여 합계를 구합니다.

  "2".charAt(0)  ==> '2'가 되고 '2' -'0' = 50 - 48 = 2가 됩니다. char 자료형을 연산하면 ASCII코드로 바뀌어 계산 됩니다.

 

728x90