320x100
문제 : programmers.co.kr/learn/courses/30/lessons/68935
string third;
while(n > 0) {
third += n % 3;
n /= 3;
}
int mul = 1;
int answer = 0;
// 뒤에서부터 탐색
for(int i=third.size()-1; i>=0; i--){
answer += mul * third[i];
mul = 3 * mul;
}
n이 0이 될때까지 n에 3나머지 연산한 결과를 문자열 앞에서부터 추가하고 n에 3을 나눈다.
n이 0이 되었을 때의 문자열이 n을 3진법화한 결과이고 이를 앞뒤 반전하라고 했으므로 뒤에서부터 3의 i(i는 자리수-1)승을 곱한 수의 총합이 정답이 된다.
시간복잡도는 O(log3N)
320x100
'알고리즘 문제 > Programmerse' 카테고리의 다른 글
[programmers][월간 코드 챌린지 시즌1] 트리 트리오 중간값 (0) | 2020.10.18 |
---|---|
[programmers][월간 코드 챌린지 시즌1] 쿼드압축 후 개수 세기 (0) | 2020.10.17 |
[programmers][월간 코드 챌린지 시즌1] 짝수 행 세기 (0) | 2020.09.20 |
[programmers][월간 코드 챌린지 시즌1] 삼각 달팽이 (0) | 2020.09.17 |
[programmers][월간 코드 챌린지 시즌1] 풍선 터트리기 (0) | 2020.09.17 |
댓글