문제 설명
오직 1, 2, 4 로만 숫자를 표현하는 124나라가 있다.
124나라는 표와 같이 이상한 규칙으로 숫자를 표현한다.
10진법 | 124나라 |
---|---|
1 | 1 |
2 | 2 |
3 | 4 |
4 | 11 |
5 | 12 |
6 | 14 |
7 | 21 |
8 | 22 |
9 | 24 |
10 | 41 |
124나라의 숫자 규칙은 다음과 같다.
10진수 n
을 3
으로 나눈 나머지에 따라 1, 2, 4
로 변환된다.
나머지 | 124 나라 |
---|---|
0 | 4 |
1 | 1 |
2 | 2 |
나눈 후 몫이 3의 배수라면 몫 - 1
에서 3을 나눈다.
전체 코드
package programmers_12899_numberOf124Contry;
/*
*
* 프로그래머스
* 12899. 124나라의 숫자
* https://programmers.co.kr/learn/courses/30/lessons/12899
* 2021-05-11
*
* */
class Solution {
public String solution(int n) {
String answer = "";
// n % 3 연산을 하며 나머지(0,1,2)에 따라 차례대로 4,1,2 부여
// 3의 배수일 경우, 몫에서 -1을 함
String[] temp = {"4", "1", "2"};
while(n > 0) {
int remainder = n % 3;
n /= 3;
if(remainder == 0) { //나누는 숫자가 3의 배수라면
n -= 1;
}
answer = temp[remainder] + answer;
}
return answer;
}
}
문제 풀이
이 문제는 한 번에 찾아내기 어려운 규칙과
효율성까지 검사하고 있기 때문에 처음 파악하기엔 조금 까다롭지만, 규칙만 파악하고 나면 어렵지 않은 문제이다.
Git gist 주소
https://gist.github.com/ysyS2ysy/de023b24f2510e723a3e4e015069b437