문제
접근
3진법에서 숫자 표기를 1,2,4를 이용하여 하면 된다.
주의할 점은 나머지가 0인 경우에는 몫을 하나 빼줘야 규칙에 맞아떨어진다.
내 생각에는 이 숫자체계는 0이 존재하지 않기 때문인거 같다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
def solution(n):
answer = ''
dic = ['4', '1', '2']
while n>0:
num = n%3
answer = dic[num] + answer
if num == 0:
n -= 3
n //= 3
return answer
- C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
using namespace std;
string solution(int n) {
string answer = "";
string dic[3] = {"4", "1", "2"};
while(n>0){
int num = n%3;
answer = dic[num] + answer;
if(num == 0)
n -= 3;
n /= 3;
}
return answer;
}