코딩테스트/프로그래머스
[프로그래머스 - 12931] 자릿수 더하기
haenni
2024. 8. 11. 16:23
👩💻 프로그래머스 Level.1 - 12931
📌 문제
✏️ 자릿수 더하기
: https://school.programmers.co.kr/learn/courses/30/lessons/12931


✏️ 문제풀이
:문제를 풀어보자 ~!
class Solution {
public static int solution(int n) {
int answer = 0;
String result = String.valueOf(n);
String[] split = result.split("");
for(String s : split){
answer += Integer.parseInt(s);
}
return answer;
}
public static void main(String[] args) {
System.out.println(solution(987));
}
}
나는 문제를 풀 때, 형변환을 통해서 문제를 해결하였다.
받아온 int n의 값을 String으로 형변환 한 뒤, split으로 문자열을 하나하나 나누어 배열에 담아주었고 for문을 돌려서 int형으로 형변환하여 결과값인 answer에 하나하나 더해주었다.
✏️ 다른 사람의 풀이를 확인한 후 Develop
: 수학연산을 통해 문제를 해결하는 방법
class Solution {
public static int solution(int n) {
int answer = 0;
while (n != 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
다른 사람의 풀이를 확인하였을 때, 간단하게 수학연산만을 통해 문제를 해결하는 방법이 있어 참고해보았다.
n의 값이 0이 될 때까지 반복문을 돌리며 answer의 값에 n을 10으로 나눈 나머지 값을 계속 더해주고
n의 값을 10으로 나눠 소수점을 버린 값을 n에 저장해줬다.
ex) n = 1234일 경우 while 반복문이 어떻게 실행되는지 단계별로 살펴보자
초기 상태:n = 1234 answer = 0
첫 번째 반복: n % 10 = 1234 % 10 = 4
answer += 4 → answer = 4
n /= 10 = 1234 / 10 = 123
두 번째 반복: n % 10 = 123 % 10 = 3
answer += 3 → answer = 7
n /= 10 = 123 / 10 = 12
세 번째 반복: n % 10 = 12 % 10 = 2
answer += 2 → answer = 9
n /= 10 = 12 / 10 = 1
네 번째 반복: n % 10 = 1 % 10 = 1
answer += 1 → answer = 10
n /= 10 = 1 / 10 = 0
종료 조건:n = 0이므로 while 반복문이 종료된다.