코딩테스트 Coding Test/프로그래머스
[프로그래머스 Lv.1] 자릿수 구하기 - 색다른 풀이
oilater
2023. 7. 26. 22:14
https://school.programmers.co.kr/learn/courses/30/lessons/12931?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
간단한 문제 설명
자연수 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;
String[] arr = String.valueOf(n).split("");
for(String a : arr) {
answer += Integer.parseInt(a);
}
return answer;
}
}
신박한 풀이
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;
}
return answer;
}
}
1. n을 10으로 나눈 나머지를 answer에 더해준다.
2. 종료 조건에 부합하지 않으면 넘어가고, n 을 10으로 나눠준다.
3. 이 과정을 반복하면 answer 에 답이 들어가있다.
즉, 일의 자리부터 십의 자리, 백의 자리 이렇게 거꾸로 answer에 더해준 것이다.
이 풀이의 장점은 형변환이 필요없다는 점이고, 시간도 매우 빠르다.
728x90
반응형
LIST