반응형
(JAVA)
0. 문제 및 입출력 예제
문제
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
제한사항
0 ≤ n ≤ 1,000,000
입출력 예
입출력 예 #1
1 + 2 + 3 + 4 = 10을 return합니다.
입출력 예 #2
9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.
1. 문제 분석
- int 를 문자열로 만든다.
- 문자열을 반복하면서 index 0부터 answer에 값을 더해준다.
2. 방법
✅ 내가 푼 풀이
class Solution {
public int solution(int n) {
int answer = 0;
String intStr = Integer.toString(n);
for (int i = 0; i < intStr.length(); i++) {
answer += Character.getNumericValue(intStr.charAt(i));
}
return answer;
}
}
✅ 다른 사람 풀이 1
n이 0일 때까지 반복을 돌면서 자릿수가 핵심인만큼 10으로 나눠가며 나머지를 넣어준다.
class Solution {
public int solution(int n) {
int answer = 0;
while(n>0){
answer+=n%10;
n/=10;
}
return answer;
}
}
✅ 다른 사람 풀이 2
막간을 이용해서 Stream을 공부해보면,
스트림은 자바 8에서 도입된 새로운 데이터 처리 개념이며 컬렉션, 배열 등의 데이터를 다루는데 유용하다.
스트림을 사용하면 간결하고 효율적인 데이터 처리가 가능하다.
import java.util.Arrays;
class Solution {
public int solution(int n) {
String[] split = String.valueOf(n).split("");
return Arrays.stream(split).mapToInt(Integer::parseInt).sum();
}
}
Arrays.stream(split) 을 사용해 ["1", "2", "3", "4"] 배열을 생성한 후
mapToInt(Integer::parseInt) 를 사용해 [1, 2, 3, 4] 로 문자열을 정수로 변환해준다.
마지막으로 sum()을 호출하면 자동으로 합산된다.
3. 느낀점
마찬가지로 다른 사람들의 풀이를 보았더니.. 대박... 알고리즘 잘하고싶다..
반응형
'알고리즘 > 프로그래머스:LV00' 카테고리의 다른 글
[LV00] 세균 증식 (0) | 2023.11.29 |
---|---|
[LV00] OX 퀴즈 (0) | 2023.11.27 |
[LV00] n의 배수 고르기 (0) | 2023.11.24 |
[LV00] 문자열 계산하기 (0) | 2023.11.23 |
[LV00] 숨어있는 숫자의 덧셈(1) (1) | 2023.11.20 |