coding_test/programmers

lv1 / 3진수 뒤집기 / C++

CodeJin 2021. 9. 12. 10:39

https://programmers.co.kr/learn/courses/30/lessons/68935?language=cpp 

 

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

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

programmers.co.kr

cpp 데뷔전(?)이다. 근데 문법을 모르니 상대적으로 난이도가 많이 올랐다......

 

C로 푼것과 거의 비슷하게 풀었다.

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(int n) {
    int answer = 0;
    vector<int> arr;
    while (n) {
        arr.push_back(n % 3);
        n /= 3;
    }
    answer = arr[0];
    for (int i = 1; i < arr.size(); i++) {
        answer = (answer * 3) + arr[i];
    }
    return answer;
}