문제설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력예
n | result |
45 | 7 |
125 | 229 |
3진법이 뭔지 모르겠다. 3진법부터 공부하자.
Python
def solution(n):
threeNum = ''
while n > 0:
threeNum += str(n%3)
n = n//3
answer = 0
count = 1
for eachChar in reversed(threeNum):
answer += count * int(eachChar)
count *= 3
return answer
JavaScript
function solution(n) {
let answer = n.toString(3).split("").reverse().join("");;
return parseInt(answer, 3);
}
C++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
string result = "";
while (n > 0){
int tempInt = (n % 3);
char tempChar = static_cast<char>(tempInt);
result += tempChar;
n /= 3;
}
int count = 1;
for(int i = result.size()-1; i >= 0; i--){
answer += result[i] * count;
count *= 3;
}
return answer;
}
'개발노트&IT > 코딩테스트' 카테고리의 다른 글
[프로그래머스|Level.1] 같은 숫자는 싫어 (0) | 2021.01.02 |
---|---|
[프로그래머스|Level.1] 가운데 글자 가져오기 (0) | 2021.01.01 |
[프로그래머스|Level.1] 2016년 (0) | 2021.01.01 |
[프로그래머스|Level.1] 유니폼 (0) | 2020.12.24 |
[프로그래머스|Level.1] k번째 수 (0) | 2020.12.20 |
최근댓글