본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 "3진법 뒤집기"

by 시아나 2022. 3. 15.

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

 

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

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

programmers.co.kr


#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    string num_3 = "";
    while (n / 3 > 0) {
        num_3 = to_string(n % 3) + num_3;
        n /= 3;
    }
    num_3 = to_string(n % 3) + num_3;
    int cal_num = 1;
    for (int i = 0; i < num_3.size();i++) {
        string tmp;
        tmp += num_3[i];
        answer += cal_num * stoi(tmp);
        cal_num *= 3;
    }
    return answer;
}