알고리즘
[알고리즘 / 프로그래머스] 124 나라의 숫자
DevBee
2020. 11. 12. 21:37

문제는 위와 같으며, 주어지는 숫자를 3으로 반복하여 나누면서 나머지를 순서대로 저장하는 방식으로 문제를 해결하였습니다.
파이썬 코드는 다음과 같습니다.
def solution(n):
answer = ""
while n > 0:
# n 이 3의 배수인 경우
if n % 3 == 0:
answer = str(4) + answer[0:] # 문자열 맨 앞에 4를 추가하고 기존 문자열을 뒤에 추가
n = (n // 3) - 1
else:
answer = str(n % 3) + answer[0:] # 문자열 맨 앞에 n 을 3으로 나눈 나머지를 추가하고 기존 문자열을 뒤에 추가
n = n // 3 # n 을 3으로 나눈 몫을 다시 n 에 저장
return answer
자바 코드는 다음과 같습니다.
import java.io.InputStreamReader;
class Solution {
public String solution(int n) {
StringBuilder sb = new StringBuilder();
while (n > 0) {
int tmp = n % 3;
if (tmp == 0) {
sb.insert(0, 4);
n = (n / 3) - 1;
} else {
sb.insert(0, tmp);
n /= 3;
}
}
return sb.toString();
}
}