GitHubSeob

C++ / 프로그래머스 / 124 나라의 숫자 본문

Programmers/Level 2

C++ / 프로그래머스 / 124 나라의 숫자

GitHubSeob 2022. 4. 14.
문제

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

 

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

 

programmers.co.kr

문제풀이

 

숫자 3개 1, 2, 4를 이용하여 해당 숫자를 변환하는 문제이다.

 

단순히 3진법으로 변환하기에는 3일 때 몫은 1이고 나머지가 0인데 124 나라의 수로는 4라서 조금 바꿔야 한다.

3의 배수일 때 answer에 4를 더하고 n에 -1을 뺀다.

그 외의 경우는 n을 3으로 나눈 나머지를 string형으로 만들어 더하면 된다.

 

그리고 마지막에는 reverse를 통해 역순으로 바꿔줘야한다.

 

 

코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string solution(int n) {
    vector<string>number = { "1","2","4" };
    string answer("");

    while (n > 0) {
        if (n % 3 == 0) {
            answer += "4";
            --n;
        }
        else answer += to_string(n % 3);
        n /= 3;
    }

    reverse(answer.begin(), answer.end());

    return answer;
}