문제
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("Hello Java");
return answer;
}
}
제한사항
N의 범위 : 100,000,000 이하의 자연수
입출력 예
n | answer |
123 | 6 |
987 | 24 |
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
문제 풀이
분석
숫자를 문자열로 변환하거나, 수학적 계산을 통해 각 자릿수를 추출할 수 있음
숫자를 문자열로 변환하는 방법을 처음 생각했지만 수학적 계산이 더 간단하다.
주어진 숫자 N을 10으로 나눈 나머지를 통해 마지막 자릿수 구하기
N을 10으로 나누어 마지막 자릿수를 제거하기
이 과정을 N이 0이 될 때까지 반복하기
내 소스코드
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(n>0){
answer += n%10;
n /=10;
}
return answer;
}
}
다른 예시 1
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(true){
answer+=n%10;
if(n<10)
break;
n=n/10;
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("Hello Java");
return answer;
}
}
다른 예시 2
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while (n != 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
추가로 고민 할 부분
while문은 True인 경우에 실행되는데 조건을 각자 다르게 했다.
디버깅 및 값 추적할때 while true같은 건 비추라는 댓글을 봤음
Lv.1 / Java / 연습문제
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Lv. 1] 짝수와 홀수 - JAVA (0) | 2024.08.06 |
---|---|
[프로그래머스 Lv. 1] 자연수 뒤집어 배열로 만들기 - JAVA (0) | 2024.08.05 |
[프로그래머스 Lv. 1] x만큼 간격이 있는 n개의 숫자 - JAVA (0) | 2024.08.03 |
[프로그래머스 Lv. 1] 약수의 합 - JAVA (0) | 2024.08.02 |
[프로그래머스 Lv. 1] 문자열을 정수로 바꾸기 - JAVA (0) | 2024.08.01 |