1. 문제
https://programmers.co.kr/learn/courses/30/lessons/68935
2. 풀이
- 3으로 원래 숫자가 1보다 클 동안 나머지 연산을 계속해서 수행하면 3진수의 역수를 구할 수 있다. 이 수를 10진수로 변경하면 정답
2.1. python
def solution(n):
answer = ''
while n >= 1:
n, residue = divmod(n, 3)
answer += str(residue)
answer = int(answer, 3)
return answer
2.2. c++
#include <string>
using namespace std;
string Invert_Three(int n)
{
string result = "";
while (n > 0)
{
char tmp = (n % 3) + '0';
result += tmp;
n /= 3;
}
return result;
}
int solution(int n) {
return stoi(Invert_Three(n), NULL, 3) ;
}
PREVIOUS[프로그래머스] 가운데 글자 가져오기 문제 풀이