https://school.programmers.co.kr/learn/courses/30/lessons/12899
import java.util.*;
class Solution {
static int mod;
public String solution(int n) {
StringBuilder ans = new StringBuilder();
String[] number = {"4", "1", "2"};
while(n > 0) {
mod = n % 3;
n /= 3;
if(mod == 0) //나머지 0인 경우 몫-1
n--;
ans.insert(0, number[mod]); //나머지 뒷자리부터 채워나감
}
return ans.toString();
}
}
💡 수학
풀이
🎯 2진법, 8진법 계산하는 것 처럼 각 수로 나눈 몫 + 나머지를 이용해 숫자 생성
>>> 단, 124에선 0에 해당하는 수가 없으므로 나머지가 0이 나온 경우 한 단계 전 끝으로 생각
3의 경우 나머지 0이지만 4를 출력해야 함, 즉 0에 대응하는 값 → 4여야 함 {4, 1, 2} + 몫 -1 해야 함 (전 단계 끝)
자릿수 / 나머지 | 0 | 1 | 2 | 3 (= 4) |
0 | 1 | 2 | 3 | |
1 | 3 | 4 | 5 | 6 |
2 | 6 | 7 | 8 | 9 |
📌 나머지가 0으로 나온 경우 윗줄 3으로 나온 것과 동일한 취급 해줌!!
'Algorithm > Programmars' 카테고리의 다른 글
[JAVA] 방문 길이 - 프로그래머스[Lv.2] (1) | 2024.02.09 |
---|---|
[JAVA] 하노이의 탑 - 프로그래머스[Lv.1] (1) | 2024.02.08 |
[SQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - 프로그래머스[Lv.3] (1) | 2024.01.31 |
[SQL] 입양 시각 구하기(2) - 프로그래머스[Lv.4] (1) | 2024.01.29 |
[SQL] 저자 별 카테고리 별 매출액 집계하기 - 프로그래머스[Lv.4] (0) | 2024.01.28 |