https://programmers.co.kr/learn/courses/30/lessons/12899?language=java
풀이
3진법에서 1,2,3 대신 1,2,4를 사용한다고 생각하고 풀면 된다.
단, 주의할 점은 나머지가 0이 나올 때이다.
0 대신 4를 string에 추가해주고, 다음 몫으로 갈때 n에서 1을 빼고 계산해야한다.
class Solution {
public String solution(int n) {
StringBuilder sb = new StringBuilder();
while(n!=0){
if(n%3==0) {
sb.append(4);
n = (n-1)/3;
}
else {
sb.append(n%3);
n = n/3;
}
}
return sb.reverse().toString();
}
}
다른사람풀이
StringBuilder을 사용하지 않고 푼 방식이다. String 배열을 사용해서 한 문장으로 넣는다는 생각을 못했을까 싶다.
class Solution {
public String solution(int n) {
String[] num = {"4","1","2"};
String answer = "";
while(n > 0){
answer = num[n % 3] + answer;
n = (n - 1) / 3;
}
return answer;
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 Lv2 > 삼각 달팽이 (0) | 2022.03.06 |
---|---|
[Java] 프로그래머스 Lv.2 > 전화번호 목록 (0) | 2022.03.04 |
[Java] 프로그래머스 Lv.2 > 멀쩡한 사각형 (0) | 2022.02.28 |
[Java] 프로그래머스 Lv.2 > 가장 큰 수 (0) | 2022.02.28 |
[Java] 프로그래머스 Lv.2 > 큰 수 만들기 (0) | 2022.02.28 |