Level 2. 124 나라의 숫자
십집수와 비교하며 패턴을 찾으면 된다.
124 나라에서는 십집수를 3으로 나눈 나머지가 0일 때 4, 4일 때 1, 2일 때 2가 된다.
124 나라에서 n자릿수로 바뀌는 십집수를 f(n)이라고 할 때,
f(0) = 0
f(n) = 3ⁿ⁻¹ + f(n - 1)
#include <iostream>
#include <algorithm>
using namespace std;
string solution(int n)
{
string answer;
while (n)
{
int mod = n % 3;
(n /= 3) -= (mod == 0);
answer += "412"[mod];
}
reverse(answer.begin(), answer.end());
return answer;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 0. 배열 만들기 3 (0) | 2023.06.19 |
---|---|
Level 2. 문자열 압축 (0) | 2023.06.18 |
Level 2. 가장 큰 정사각형 찾기 (0) | 2023.06.16 |
Level 2. 게임 맵 최단거리 (0) | 2023.06.15 |
Level 0. 간단한 논리 연산 (0) | 2023.06.14 |