JAVA/Argorithm Test

# Level1 - 3진법 뒤집기

skysoo1111 2020. 11. 2. 13:12

[문제]

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

 

[내 풀이]

나는 N진수 변환하는 코드를 직접 계산했는데, Integer.toString(Value, N); 이라는 코드로 간단히 변환시킬 수 있다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        StringBuilder builder = new StringBuilder();

        // 3진수 변환
        while (n >= 1)
        {
            builder.insert(0, n % 3);
            n /= 3;
        }

        // 값 반전
        builder.reverse();

        // 10진수 변환
        int a = builder.length()-1;
        for (int i=0;i< builder.length();i++){
            int before = Integer.parseInt(builder.substring(i, i + 1));
            answer += before * Math.pow(3,a);
            a--;
        }
        
        return answer;
    }
}

[다른 사람 풀이 참고]

class Solution {
    public int solution(int n) {
        int answer = 0;
        StringBuilder builder = new StringBuilder();

        // 3진수 변환
        builder.append(Integer.toString(n, 3));

        // 값 반전
        builder.reverse();

        // 10진수 변환
        int a = builder.length()-1;
        for (int i=0;i< builder.length();i++){
            int before = Integer.parseInt(builder.substring(i, i + 1));
            answer += before * Math.pow(3,a);
            a--;
        }
        
        return answer;
    }
}

 

<문제 출처>

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

 

코딩테스트 연습 - 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수

programmers.co.kr

 

'JAVA > Argorithm Test' 카테고리의 다른 글

# Level 1 - 탐욕법-체육복  (0) 2020.11.05
# Level1 - 문자열 내 P와 Y의 개수  (0) 2020.11.04
# Level1 - 모의고사 (완전탐색)  (0) 2020.10.30
# Level1 - 예산  (0) 2020.10.30
# Level1 - 두개 뽑아서 더하기  (0) 2020.10.29