문제 설명

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

 

제한사항

  • n은 1 이상 100,000,000 이하인 자연수입니다.

 

입출력 예

45 7
125 229

코드

#include <cmath>
#include <algorithm>

int solution(int n) 
{
    vector<int> v;
    int answer = 0;

    while (n)
    {
        v.push_back(n % 3);
        n /= 3;
    }

    // for문 돌리기 위해서 뒤집기
    reverse(v.begin(), v.end());

    for (int i = 0; i < v.size(); i++)
    {
        answer += (pow(3, i) * v[i]);
    }

    return answer;
}
더보기

<algoritm> -> reverse() 뒤집기 함수

<cmath> -> pow() 제곱 함수 ex) pow(10,3) : 10의 3승 구하기

 

+ Recent posts