문제풀이(C++)/프로그래머스[Level1]
[프로그래머스 Level1][C++] 3진법 뒤집기
땡땡
2021. 10. 19. 14:29
문제 설명
자연수 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승 구하기