알고리즘 부셔버렷/ProblemSolving

[프로그래머스] 124 나라의 숫자 (문제 설명, 해결 과정, 코드 전문, c++)

Unagi_zoso 2022. 6. 2. 01:25

 

  문제 설명

 

 

본 문제는 프로그래머스의 124 나라의 숫자 문제입니다.

 

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

 

 

 

 

 

  해결 과정

 

1 2 4 세 가지의 숫자만을 사용하기에 3진법으로 주어지는 숫자를 나누고 각 대응되는 숫자를 1, 2, 4로 치환하여 반환하면됩니다.

 

 

 

 

  코드 전문

 

 

#include <string>
#include <vector>
#include <algorithm>
#include <regex>

using namespace std;

string solution(int n) {
    string answer = "";
    n--;
    while (1)
    {
        if (n < 3) {answer += to_string(n); break;}
        if (n >= 3)
        {   
            answer += to_string(n%3);
            n = n/3;
            n--;
        }        
    }
    reverse(answer.begin(), answer.end());
    answer = regex_replace(answer, regex("2"), "4");
    answer = regex_replace(answer, regex("1"), "2");
    answer = regex_replace(answer, regex("0"), "1");

    return answer;
}

 

 

 

 

  느낀 점 (잡설 99% , 배운점 1%(많은 편))

 

 

더보기

부호없는 int는 40억, long long은 1800경 정도 됩니다. 지난 번에 배웠던 regex를 여기서도 써봤습니다.

 

 

 

 

 

 

 

긴 글 읽어주셔서 감사합니다. 

부족한 점이 있다면 부디 알려주시면 감사하겠습니다.