티스토리 뷰

프로그래머스 68935번 - 3진법 뒤집기

프로그래머스 68935번 - https://programmers.co.kr/learn/courses/30/lessons/68935

 

요구사항

1. n을 3진법 상으로 앞뒤로 뒤집는다.

2. 뒤집어진 3진법으로 표기된 수를 10진법으로 표현한 수를 반환하라.

 

요구사항 분석 및  풀이과정

1. n을 3진법으로 변환하면서 거꾸로 뒤집은 형태로 구한다.

2. 뒤집어진 3진법으로 표기된 수를 10진수로 변환한다.

 

소스코드 작성

class Solution {
    
    private static int[] toThird(int value) {
        int len = (int)(Math.log10(value) / Math.log10(3)) + 1;
        int[] result = new int[len];
        
        for(int i = 0; i < len; i++) {
            result[i] = value % 3;
            value /= 3;
        }
        
        return result;
    }
    
    private static int toTen(int[] third) {
        int len = third.length;
        int result = 0;
        
        for(int i = 0; i < len; i++) {
            result += third[i] * (int)Math.pow(3, len - i - 1);
        }
        
        return result;
    }
    
    public int solution(int n) {
        return toTen(toThird(n));
    }
}

 

결과

 

소스코드 깃허브 주소

링크

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함