[프로그래머스]124 나라의 숫자(C++)

문제-124나라의 숫자

🤔문제 해석


모든 수를 표현할 때 1,2,4만 사용한다.
자연수 n이 매개변수로 주어질 때, n을 124나라에서 사용하는 숫자로 바꾼 값을 return하는 solution 함수를 완성시켜라.

😏풀이

n진수와는 완전히 다른 방법의 숫자 매김방식.

처음부터 1,2,4를 번갈아가며 사용한다.

알아보기 쉽게 n을 share에 저장해둔다.
숫자 3개가 번갈아 순서대로 나오므로 %3을 하여 remainder에 저장한다.
그리고 share를 3으로 나눠준다.

remainder가 0일 때 answer 앞에 "4"를 붙여주고 share--를 해준다.
remainder가 1 또는 2일 때, answer 앞에 "1","2"를 붙여준다.

이 과정을 while문으로 주어진 n값이 0이 될 때까지 계속 반복한다.

그 결과로 나온 answer값이 정답이다.

💻코드

#include <string>
#include <vector>
using namespace std;

string solution(int n) {
    string answer = "";
    int share = n;
    int remainder = -1;

    while (share != 0) {
        remainder = share % 3;
        share = share / 3;

        if (remainder == 0) { //나누어 떨어질 경우 몫을 1빼준다.
            answer = "4" + answer;
            share--;
        }
        else if (remainder == 1) {
            answer = "1" + answer;
        }
        else if (remainder == 2) {
            answer = "2" + answer;
        }
    }

    return answer;
}

좋은 웹페이지 즐겨찾기