728x90
https://programmers.co.kr/learn/courses/30/lessons/12899
문제 풀이
3개의 숫자만 쓸 수 있다는 점이 3진수를 사용하라는 힌트이다.
여기서 주의해야 할 점은 3으로 나누어 떨어지는 경우이다.
10진수 | 3진수 | 124나라 |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 10 | 4 |
4 | 11 | 11 |
- | - | - |
12 | 110 | 44 |
3으로 나누어 떨어지는 경우에는 몫이 하나 남기 때문에 -1을 해줘야 한다.
그 외에는 수 체계 바꾸기와 동일하게 하면 된다!
느낀 점
보자마자 3진수를 생각해냈지만 수를 바꾸는데서 많이 헤맨 거 같다..
코드
#include <string>
using namespace std;
string solution(int n) {
string answer = "";
int tmp = n;
while (tmp > 0) {
answer = "412"[tmp % 3] + answer;
if (tmp % 3 == 0) tmp = (tmp - 1) / 3;
else tmp /= 3;
}
return answer;
}
'문제 풀이 > 프로그래머스 (Programmers)' 카테고리의 다른 글
[C++] 프로그래머스 : 위클리 챌린지 (8주차) (0) | 2021.10.03 |
---|---|
[C++] 프로그래머스 : 기능개발 (0) | 2021.10.02 |
[C++] 프로그래머스 : 멀쩡한 사각형 (0) | 2021.10.01 |
[C++] 프로그래머스 : 단체사진 찍기 (0) | 2021.09.30 |
[C++] 프로그래머스 : 카카오프렌즈 컬러링북 (0) | 2021.09.22 |
댓글