문제에서 주어진 숫자는 3개다. 그리고 그 3개가 반복해서 나타나는 형태다.
이러한 형태에서 생각나는 것은 3진수다. 진수변환을 활용한 문제풀이를 하였다.
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
예시
10진법 124 나라 10진법 124 나라
1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.
즉 124의 반복이다. 앞의 10진법에서 1, 2, 3을 통해서 어떻게 3진수와 연결할 수 있을지 생각할 수 있다.
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
string answer="";
//10진수 1, 2, 3을 각각 3으로 나누었을 때 나머지가 각 자리의 수를 결정한다.
string binary = "412";
//상황에 맞게 적적하게 진수와 연결하여 문제를 푼다.
while(n>0){
answer=binary[n%3]+answer;
if(n%3 == 0){
n=n/3-1;
}
else{
n/=3;
}
}
return answer;
}