본문 바로가기

Problem Solving/programmers

[programmers] Level 1 3진법 뒤집기.java

728x90
반응형
SMALL

프로그래머스 Level 1 3진법 뒤집기를 자바를 통해 풀어보았다. 

 

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

 

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

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

programmers.co.kr

 

 

3진법 뒤집기.java

 

tomy9729/Algorithm

🐗 내가 직접 작성한 내 코드 🐗. Contribute to tomy9729/Algorithm development by creating an account on GitHub.

github.com



Level 1 - 3진법 뒤집기.java

//Level 1 3진법 뒤집기.java
import java.lang.Math;
class Solution {
    public int solution(int n) {
        int answer = 0;
        int x = 0; //3^x
        int square = 1; //3의 square제곱
        while(n>=square*3){
            square *= 3;
            x += 1;
        }
        int[] ternary = new int[x+1]; //3진법의 자릿수
        for(int i=0;i<ternary.length;i++){
            ternary[i] = n/square; //3진법으로 변환 및 저장
            n -= square*ternary[i]; //남은 n
            square /=3;
            answer += Math.pow(3,i)*ternary[i]; //접근하는 순서가 3진법을 뒤집은 것과 같기 때문에 곧바로 10진법으로 변환하여 answer에 더해줌
        }
        return answer;
    }
}

 

728x90
반응형
SMALL