Krononberg

프로그래머스) 3진법 뒤집기 c++ 본문

개발 로그/알고리즘

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

k._. 2021. 9. 3. 08:54

핵심 : 진법 변환 연습.

배운 것 : vector를 썼다면, to_string과 y[i]-0을 생략할 수 있었겠다.

#include <string>
#include <vector>
#include <math.h>

using namespace std;

string convertToTernary(int& x){
    string s = "";
    while(x!=0){
        s += to_string(x % 3);
        x /= 3;
    }
    return s;    
}

int convertToDecimal(string y){
    int decimal = 0;
    for(int i =0; i < y.size(); i++) decimal += (y[i]-'0')*pow(3,y.size()-(i+1));
    return decimal;
}

int solution(int n) {
    return convertToDecimal(convertToTernary(n));
}