문제 설명
자연수 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승 구하기
'문제풀이(C++) > 프로그래머스[Level1]' 카테고리의 다른 글
[프로그래머스 Level1][C++] 8주차_최소직사각형 (0) | 2021.10.28 |
---|---|
[프로그래머스 Level1][C++] 음양 더하기 (0) | 2021.10.20 |
[프로그래머스 Level1][C++] 내적 (0) | 2021.10.19 |
[프로그래머스 Level1][C++] 로또의 최고 순위와 최저 순위 (0) | 2021.10.19 |
[프로그래머스 Level1][C++] 약수의 개수와 덧셈 (0) | 2021.10.17 |