< 문제 정보 >
[ 문제 ]
10진수 자연수를 1, 2, 4의 숫자로 표현하기
[ 규칙 ]
- n은 500,000,000이하의 자연수 입니다.
[ 프로그래머스 ]
- Level 2 / Java
- 출처 : 프로그래머스 - https://programmers.co.kr/learn/courses/30/lessons/12899 ]
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이 들어왔을 때, 3으로 나눈 나머지에 대하여
(1) '1'일 경우 : 1출력
(2) '2'일 경우 : 2출력
(3) '0'일 경우 : 4출력
-> 출력 이후, n은 3으로 나눈 몫이 된다. ( n=n/3 )
- '1', '2', '0'의 경우를 배열로 만들어 사용한다.
=> String card[ ] = { "4", "1", "2" }- 만약, n이 3으로 나눠떨어진다면 -1을 해줘야한다. ( n = n-1 )
[ 코드 ]
class Solution { public String solution(int n) { int g; String card[]={"4","1","2"}; String answer = ""; while(n>0){ // n이 0일때까지 반복 g=n%3; // 나머지 계산 n/=3; // 몫 계산 if (g==0) // 3으로 나눠떨어질 경우 n--; // n-1 계산 answer=card[g]+answer; // 나머지를 인덱스로, 배열의 값을 문자열에 초기화 } return answer; } }