https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
programmers.co.kr
목표 : 1,2,4 로 모든 수 표현하기 3진법을 사용해서 1%3 = 1 , 2%3 = 2, 3%3 = 0 인데 나머지가 0이면 4로 바꿔준다. (124 나라 수로 표현하기 위해) 배열의 인덱스를 이용해서 4,1,2 로 저장 6은 124나라에서 14이다. 6을 3으로 나눈 나머지가 0, 3으로 나눈 몫은 2 0을 4로 변경, 몫 -1 ----------------------->4 몫-1인 1을 3으로 나눈 나머지 1, 몫은 0 종료. ------------->1 n이 0이 될 때까지 반복 n을 3으로 나눈 나머지를 변수에 저장 n을 3으로 나눈 몫을 다시 n으로 갱신 n을 3으로 나눈 나머지가 0 일 경우 n-1 을 해서 다시 3으로 나누어준다. 그렇지 않을 경우 인덱스를 사용해 나머지 연산 결과를 뒤쪽에 계속 붙여나갈 수 있도록 한다. |
public class Solution {
public String solution(int n) {
String answer = "";
int[] arr = { 4, 1, 2 };
while(n>0) {
int nmg = n % 3;
n = n/3;
if(nmg == 0) n--;
answer = arr[nmg] + answer;
}
return answer;
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (0) | 2020.06.20 |
---|---|
[프로그래머스] 기능개발 (0) | 2020.06.18 |
[프로그래머스] 가장 큰 수 (0) | 2020.05.18 |
[SWEA] 6719. 성수의 프로그래밍 강좌 시청 (0) | 2020.05.17 |
[SWEA] 6782. 현주가 좋아하는 제곱근 놀이 (0) | 2020.05.17 |