Java/Java.algorithm
자바(JAVA) - 124 나라의 숫자(Programmers : 12899)
자바리안
2022. 3. 13. 23:13
반응형
https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
처음 문제를 접했을때는 n진수 계산 방법으로 접근하면 되겠구나라고 생각했지만 쉽지가 않았다...
밤을 샐 것 같아, 고수님들의 솔루션을 통해 공통되지 않는 숫자 중 3을 나눴을 때의 값과 나머지를 이용하는 방법을 접하게 되었고,
추가로 나머지가 0일 경우 몫에서 1을 빼주며 계산을 반복하니 쉽계 답을 원하는 답을 얻을 수 있었다.
124나라에서의 두자리 숫자 24, 10진수로는 9의 풀이과정을 예로 보자.
1. 첫 셈에서 9을 3으로 나누면 몫이 3, 나머지가 0 > 나머지가 0이니 몫에서 1을 뺀 2를 다음 셈으로 가져간다.
2. 몫 2을 3으로 나누면 몫이 0, 나머지가 2
나머지가 결국 각 자리의 수가 된다. 마지막 셈을 시작으로 나머지가 1, 2일 경우는, 그리고 0일 경우 4로 대입해준다.
2번 셈에서 나머지가 2, 1번 셈에선 0이므로, 24라는 124나라 숫자를 구할 수 있다.
class Solution {
public String solution(int n) {
String[] numbers = {"4", "1", "2"};
String answer = "";
int num = n;
while(num > 0) {
int remaining = num % 3;
num /= 3;
if(remaining == 0) num--;
answer = numbers[remaining] + answer;
}
return answer;
}
}
반응형