문제 설명
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 0 <= n <= 1,000,000
입출력 예
n | result |
1234 | 10 |
930211 | 16 |
import java.util.ArrayList;
class Solution {
public int solution(int n) {
int answer = 0;
ArrayList<Integer> arr = new ArrayList<>();
while (n > 0) {
arr.add(n % 10);
n /= 10;
}
for (int i : arr) {
answer += i;
}
return answer;
}
}
while문으로 n이 0보다 클 때 실행을 반복하도록 했습니다. 미리 만들어둔 ArrayList인 arr에 n을 10으로 나눈 나머지를 추가하고 n을 10으로 나누는 것을 반복하여 자릿수별 숫자를 구했습니다. 이후 for문에서는 앞서 while문에서 구한 숫자를 answer에 하나씩 차례로 더해주었습니다.
앞서 게시한 문제 역시 자릿수를 구하여 활용하는 문제였습니다. 마찬가지로 저는 형변환하여 푸는 것을 선호하지 않기 때문에 반복문을 이용한 나누기 연산을 통해 풀이했습니다.
자릿수를 구하는 다른 문제(while문 이용)
[프로그래머스 코딩테스트] 369게임(Java) https://sigfriede.tistory.com/53
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 제곱수 판별하기(Java) (0) | 2023.03.30 |
---|---|
[프로그래머스 코딩테스트] 문자열 안에 문자열(Java) (0) | 2023.03.30 |
[프로그래머스 코딩테스트] 369게임(Java) (0) | 2023.03.30 |
[프로그래머스 코딩테스트] n의 배수 고르기(Java) (0) | 2023.03.29 |
[프로그래머스 코딩테스트] 배열의 유사도(Java) (0) | 2023.03.29 |