본문 바로가기

내일배움캠프

3진법 뒤집기

출처:프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/68935)

import java.util.ArrayList;
import java.util.List;

class Solution {
    public int solution(int n) {
        int answer = 0;
        List<Integer> trinary = new ArrayList<Integer>();
        for(int i = n; i > 0; i = i / 3) {
            trinary.add(i % 3);
        }
        for(int j = trinary.size() - 1, k = 0; j >= 0 ; j--, k++) {
            answer += (trinary.get(j) * quarter(k));
        }
        return answer;
    }
    public int quarter(int n) {
        int a = 1;
        for(int b = 0; b < n; b++) {
            a = a * 3;
        }
        return a;
    }
}

삼진법으로 변환한 값을 저장하는 곳은 길이가 n이 무엇이냐에 따라 달라지기 때문에 list로 선언해서 삼진법으로 변환한 자릿수들을 저장했다.

list를 구하고 앞에서부터가 아닌 뒤에서부터 숫자를 연산해서 십진법으로 변환했다.

'내일배움캠프' 카테고리의 다른 글

뉴스피드 프로젝트 1일차  (0) 2024.06.04
Spring 숙련주차 Part4  (2) 2024.06.03
최대공약수와 최소공배수 구하기  (0) 2024.05.31
MySQL에서의 if문과 case문  (0) 2024.05.30
행렬 간 덧셈  (0) 2024.05.28