문제풀이/프로그래머스
[프로그래머스] 3진법 뒤집기
Hyeon-Uk
2020. 11. 24. 00:57
반응형
programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
문제풀이)
이진수를 구하듯이 같은방법으로 3진수를 구해준다.
3진수 구하는 방법
1.n을 3으로 나눠준 값을 temp에 저장한다. -> n을 3으로 나눠준다 (n>0일때까지)
2.temp를 리버스시킨다.
하지만 문제에서 3진법 앞뒤반전을 하라했으니, 우리는 1번까지만 시행해주고, 3진수를 10진수로 변환시켜주면된다.
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
string temp="";
while(n>0){
temp+=((n%3)+'0');
n/=3;
}
int mul=1;
for(int i=temp.length()-1;i>=0;i--){
answer+=(temp.at(i)-'0')*mul;
mul*=3;
}
return answer;
}
반응형