상세 컨텐츠

본문 제목

3진법 뒤집기(C++)

알고리즘/프로그래머스

by 아리따운노을 2020. 12. 3. 14:02

본문

programmers.co.kr/learn/courses/30/lessons/68935

 

코딩테스트 연습 - 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수

programmers.co.kr

오랜만에 심심해서 머리풀겸... 국민은행 발표도 기다릴겸....

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <string>
#include <vector>
 
using namespace std;
 
int solution(int n) {
    string temp = "";
    bool check = false;
    int start = 43046721;
    while(start){
        if(start <= n ){
            temp = to_string(n/start) + temp;
            n%=start;
            check = true;
        }
        else if(start > n && check){
            temp = "0" + temp;
        }
        start/=3;
    }
    int answer = 0, index = 1;
    for(int i=temp.length() - 1;i>=0;i--){
        answer += (temp[i] - '0'* index;
        index *= 3;
    }
    return answer;
}
cs

 

 

 

관련글 더보기

댓글 영역