3. 124 나라의 숫자 (프로그래머스)
by BFine반응형
가. 문제파악
1. 유형 : 진법
- 뭔가 알듯 말듯 하면서 잘 풀리지 않았던 문제였다... 진법만 나오면 머리가 띵해지는 것 같다.
나. 코드
1. 풀이 : 3진법과 보정
- 문제를 보면서 처음엔 3개로 만들 수 있는 모든 경우의 수를 구하면 되지 않을까 생각했다
- 보다보니 3진법으로 풀릴것 같아서 3진법으로 하는데 문제가 발생했다.
- 3진법으로 그려보면 숫자보다 먼저 자리수가 달라지는 문제가 발생한다.
3 | 6
---
3 | 2 - - - 0
---
0 - - - 2
3 | 6
---
3 | 1 - - - 0 -> -1
---
0 - - - 1
- 자리수가 달라지기 때문에 자리수 보정을 해준 뒤 0을 "4" 라고 생각하면 된다
public String solution(int n) {
String[] str = {"4","1","2"};
String answer = "";
while (n>0){
int m = n/3;
int r = n%3;
n = m;
if(r == 0){
n = n-1; // 자리수 보정
}
answer = str[r]+answer;
}
return answer;
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
6. 삼각달팽이 (프로그래머스) (0) | 2021.04.10 |
---|---|
5. 가장 큰 수 (프로그래머스) (0) | 2021.04.07 |
4. 소수찾기 (프로그래머스) (0) | 2021.04.04 |
2. 신규아이디 추천 (프로그래머스) (0) | 2021.04.02 |
1. 크레인 인형뽑기 (프로그래머스) (0) | 2021.04.02 |
블로그의 정보
57개월 BackEnd
BFine