https://programmers.co.kr/learn/courses/30/lessons/12899

 

코딩테스트 연습 - 124 나라의 숫자

124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

programmers.co.kr

 

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
27
28
29
30
#include <string>
#include <vector>
 
using namespace std;
 
string solution(int n) {
    string answer = "";
    //넣을 문자열
    string numArray[3= { "4","1","2" };
    //나머지
    int remainder;
    while (true)
    {
        //현재 숫자 n을 3으로 나눈 나머지를 구한다.
        remainder = n % 3;
        //n을 3으로 나눈다.
        n = n / 3;
        //나머지가 0일 경우, n에서 1을 빼준다.
        //이렇게 하지 않을 경우 while문이 한번 더 돌아서 answer 앞에 4가 붙게 된다.
        if (remainder == 0)
        {
            n--;
        }
        //나누어 떨어지면 4, 아닐 경우 해당 숫자를 answer 문자열 앞에 더해준다.
        answer = numArray[remainder] + answer;
        //n이 0일 경우 빠져나온다.
        if(n==0)break;
    }
    return answer;
}

+ Recent posts