알고리즘/Programmers
[Programmers] Brute Force : 124 나라의 숫자 #12899
kkoon9
2020. 1. 29. 14:04
문제 링크
문제 조건
- 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
- 124 나라에는 자연수만 존재합니다.
- 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
10진법 | 124 나라 | 10진법 | 124 나라 |
---|---|---|---|
1 | 1 | 6 | 14 |
2 | 2 | 7 | 21 |
3 | 4 | 8 | 22 |
4 | 11 | 9 | 24 |
5 | 12 | 10 | 41 |
변수 설명
- n : 10진법 수 (매개변수)
코드 설명
- (1). n % 3 의 결과에 따라 124 나라에서 사용하는 숫자의 뒷자리를 알 수 있다.
- n % 3 == 0 이면 4
- n % 3 == 1 이면 1
- n % 3 == 2 이면 2
- (2). n을 3으로 나눠준 뒤 (1)을 다시 진행한다.
- (3). n이 0이 될때까지 진행한다.
- 주의사항
- n % 3 == 0 이면 n-=1 을 해주어야 한다.
- ex) n이 21일 때
- n-=1을 해주지 않는다면 값이 이상하게 나온다.
- n % 3 == 0 이면 n-=1 을 해주어야 한다.
문제 해답
class Solution {
public String solution(int n) {
String answer = "";
while(n != 0) {
if(n%3 == 0) {
answer += "4";
n-=1;
} else if(n%3 == 1){
answer += "1";
} else {
answer += "2";
}
n/=3;
}
StringBuffer sb = new StringBuffer();
sb.append(answer);
return sb.reverse().toString();
}
}