Contents

[프로그래머스]124 나라의 숫자

Contents

https://programmers.co.kr

문제:

124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

  1. 124 나라에는 자연수만 존재합니다.
  2. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

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 함수를 완성해 주세요.

풀이:

2진법을 표현하는 방법과 비슷하게 한다.

m을 3으로 나눈 나머지를 맨 뒤에 넣는다.

m을 3으로 나눈다.

반복한다.

코드:

사용언어 : c++

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <string>
#include <vector>

using namespace std;
string a = "412";
string answer;
void c(int m) {
	if (m <= 0) return;
	if (!(m % 3))	c((m / 3) - 1);
	else	c(m / 3);
	answer += a[m % 3];	
}

string solution(int n) {
	c(n);
    return answer;
}