Posts [알고리즘] 프로그래머스 - 3진법 뒤집기
Post
Cancel

[알고리즘] 프로그래머스 - 3진법 뒤집기


문제

3진법 뒤집기


접근

  1. 10진법을 3진법으로 바꾸기
  2. 3진법을 뒤집기
  3. 3진법을 10진법으로 바꾸기

이 과정에서 1,2번은 한번에 해결할 수 있다.
3진법으로 바꾸는 과정에서 뒤집어서 저장하면 된다.
C++ 같은 경우 int형으로 할 경우 오버플로우가 발생할 수 있다.

코드

  • C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>

using namespace std;

int solution(int n) {
    long long answer = 0, base3 = 0;
    int t = 1;
    while(n>0){
        base3 = base3*10 + n%3;
        n /= 3;
    }
    while(base3>0){
        answer += (base3%10) * t;
        base3 /= 10;
        t *= 3;
    }
    return answer;
}
  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
def solution(n):
    answer = 0
    base3 = 0
    while n>0:
        base3 = base3*10 + n%3
        n = n//3
    t = 1
    while base3 > 0:
        answer += (base3 % 10) * t
        base3 = base3//10
        t *= 3
    return answer


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 소수 찾기

[알고리즘] 프로그래머스 - 수박수박수박수박수박수?