[프로그래머스] 3진법 뒤집기 / C++
문제
문제를 보시려면 링크를 클릭해주세요.
풀이
주어진 숫자 n을 앞뒤로 뒤집은 3진법 상의 수로 받아 문자열에 담아줍니다.
문자열에 담긴 값을 다시 10진법의 수로 변환해줍니다.
이 때, cmath 헤더에 있는 pow 함수
를 사용해 n 제곱을 구할 수 있습니다.
ex) \(pow(3,2) = 3의 2제곱 = 3^2 = 9\)
소스 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <string>
#include <cmath>
using namespace std;
int solution(int n) {
int answer = 0;
string str;
while(true){
str += to_string(n%3);
if(n<3)
break;
n = n/3;
}
for(int i=0; i<str.size(); i++){
answer += pow(3,str.size()-i-1) * (str[i]-'0');
}
return answer;
}
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.