모바일 개발하는 자바리안의 메모장

자바(JAVA) - 124 나라의 숫자(Programmers : 12899) 본문

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;
    }
}

 

 

 

반응형
Comments