728x90
반응형
문제 설명
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
제한사항
- 0 ≤ n ≤ 1,000,000
입출력 예
n | result |
1234 | 10 |
930211 | 16 |
입출력 예 #1
- 1 + 2 + 3 + 4 = 10을 return합니다 .
입출력 예 #2
- 9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.
[나의 풀이]
import java.util.Arrays;
class Solution {
public int[] solution(int n) {
return Arrays.stream(String.valueOf(n).split("")).mapToInt(Integer::pareseInt).sum();
}
}
[풀이과정]
String의 valueOf(정수).split("") 를 통해 해당 정수를 String배열로 변환하였다.
Arrays.stream을 통해 Stream으로 변환한뒤, mapToInt(Integer::parseInt)로 정수값으로 변환한다음 누적합을 구하였다.
[다른 풀이]
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public List<Integer> solution(int n) {
return String.valueOf(n).chars().map(number -> Character.digit(number, Character.LETTER_NUMBER)).sum();
}
}
핵심은 String의 chars()와 Character의 digit(), LETTER_NUMBER이다.
String의 chars()메소드는 문자열에 존재하난 각 문자의 ASCII코드값을 포함하는 IntStream을 생성한다.
해당 ASCII코드를 digit()메소드를 통해 현재요소 ASCII코드를 10진법으로 변환한다.
이후 누적합을 계산한다.
728x90
반응형
'코딩테스트 - 프로그래머스 > Lv. 0' 카테고리의 다른 글
[55] JAVA 공백으로 구분하기 1 (1) | 2023.11.21 |
---|---|
[54] JAVA 머쓱이보다 키 큰 사람 (2) | 2023.11.21 |
[52] JAVA 배열의 유사도 (1) | 2023.11.21 |
[51] JAVA 배열의 원소만큼 추가하기 (0) | 2023.11.20 |
[50] JAVA 길이에 따른 연산 (0) | 2023.11.20 |