Dolphins의 HelloWorld

Programmers Level 2 124나라의 숫자 본문

Algorithm/Programmers 문제풀이

Programmers Level 2 124나라의 숫자

돌핀's 2018. 8. 6. 12:07


문제를 보고 곰곰히 생각하다보면 


숫자가 1, 2, 4 로 표현된다는 차이만 있을 뿐 수가 나타내어지는 원리는


3진법을 표현하는 방식과 같다는 것을 알 수 있다.


다만 유의해야할 점은 기존 n진법과는 다르게 숫자가 0이 아니라 1부터 시작된다는 점이다.


이를 보정하기 위한 방법이 여러가지가 있는데


나는 n%3 = 0 인 경우에 n에서 3을 뺴준 상태에서 3을 나눠주는 방식을 사용하였다.




#include <string>
#include <vector>

using namespace std;

string solution(int n) {
    string answer = "";
    do{
        if(n%3 == 0){
            answer = "4" + answer;
            n = n-3;
        }
        else if(n%3 == 1){
            answer = "1" + answer;
        }
        else if(n%3 == 2){
            answer = "2" + answer;
        }
        if(n/3 == 0) break;
    }while(n = n/3);
    return answer;
}
Comments