Programmers/Level 2
C++ / 프로그래머스 / 124 나라의 숫자
GitHubSeob
2022. 4. 14. 18:12
| 문제 |
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;
}