본문 바로가기

CS/Algorithm

124 나라

반응형

programmers.co.kr/learn/courses/30/lessons/12899

 

코딩테스트 연습 - 124 나라의 숫자

 

programmers.co.kr

 

진법 구현과 비슷하다.

다만 예외 사항이

나머지값이 0일 때 몫을 -1해야 된다는점,

효율성 점수가 있다는점이다.

 

package question;

public class 나라124
{
    public static void main(String [] args)
    {
        for (int i = 1; i <= 50; i++)
        {
            System.out.println(i + " : " + solution(i));
        }

        // 1    2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20
        // 1    2   4   11  12  14  21  22  24  41  42  44  111 112 114 121 122 124 141 142

        // 0    0   1   1   1   2   2   2   3   3   3   4   4   4   5   5   5   6   6   6
        // 0    0   0   1   1   1   2   2   2   4   4   4   11  11  11  12  12  12  14  14
    }

    public static String solution(int n)
    {
        String result = "";
        if (n < 3)
        {
            result = String.valueOf(n);
            return result;
        }
        StringBuilder builder = new StringBuilder();
        while(n >= 3)
        {
            int etc = n % 3;
            n = n / 3;
            if (etc == 0)
            {
                n--;
                builder.insert(0, "4");
            } else {
                builder.insert(0, etc);
            }
            if (n < 3 && n != 0)
            {
                builder.insert(0, n);
            }
        }
        result = new String(builder);
        return result;
    }
}
반응형

'CS > Algorithm' 카테고리의 다른 글

기능 개발  (0) 2021.05.15
바이너리 서치(이진 탐색)  (0) 2021.05.14
다트 게임  (0) 2021.05.11
카카오 문자열 압축 문제  (0) 2021.05.07
로또의 최고 순위와 최저 순위  (0) 2021.05.04