반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12899
- 소요 시간 : 50분
- 난이도 : LV 2
접근 방법
3진법과 유사하여 몫과 나머지를 이용해 숫자를 바꾸어주면 된다.
자세한 설명 : https://yabmoons.tistory.com/692
다만 주의할 점은 124나라에는 3진법과 달리 0이 없다는 것이다.
0으로 나누어 떨어지는 경우
몫을 -1 해주고 나머지를 4로 변경해주면 124 나라에서 사용하는 숫자의 형태가 된다.
아래는 1부터 15까지 이를 적용하는 과정이다.
나의 풀이
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
string answer = "";
while(n > 0) {
int share = n / 3;
int remainder = n % 3;
if (remainder == 0) {
share--;
remainder = 4;
}
answer = to_string(remainder) + answer;
n = share;
}
return answer;
}
정리
알고리즘을 생각하는 과정이 어려웠던 문제였다.
반응형
'코딩테스트' 카테고리의 다른 글
[Sofeteer] 징검다리 - C++ (1) | 2024.09.05 |
---|---|
[프로그래머스] 순위 - C++ (0) | 2024.08.16 |
[프로그래머스] 삼각 달팽이 - C++ (3) | 2024.07.24 |
[프로그래머스] 가장 큰 수 - C++ (2) | 2024.07.23 |
[백준] 1913. 달팽이 - C++ (0) | 2024.07.19 |