알고리즘/프로그래머스

[프로그래머스]JAVA - Level2. 124 나라의 숫자

K.두부 2022. 7. 10. 17:20
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12899

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

문제를 보자마자 몫과 나머지를 이용하는 문제라는 걸 파악했지만 생각보다 오래 걸렸음. 이유는 기본적인 3진법과의 차이가 있다는 점.

 

기본적인 3진법: 0, 1, 2, 10, 11, 12 

124나라의 3진법: 1, 2, 4, 11, 12, 14

 

차이점은 "일의 자리에 1, 2, 4 모든 숫자가 올 수 있다." 그렇기 때문에 나머지가 0으로 떨어지는 경우 숫자에서 -1을 해주어야한다. 

class Solution {
    public String solution(int n) {
        String answer = "";
        
        while (n > 0) {
            int reminder = n % 3;
            
            if (reminder == 0) answer = "4" + answer;
            else if (reminder == 1) answer = "1" + answer;
            else answer = "2" + answer;
            
            // 모두 1의 자리에 들어올 수 있기 때문에 나머지가 0으로 떨어지는 경우 -1
            if (reminder == 0) n--; 
            
            n = n / 3;
        }
        return answer;
    }
}

 

반응형