[Programmers][Java] 3진법 뒤집기

HyeBin, Park·2021년 4월 30일
0

Programmers

목록 보기
3/26
post-thumbnail

https://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<Double> list = new ArrayList<>();
        // 3보다 작은 수를 미리 걸러준다. 
        if(n<3) answer = n;
        // 3보다 큰 수
        else {
            while (n / 3 > 0) {
                list.add((double) n % 3);
                n = n / 3;
                if (n < 3) list.add((double) n);
            }
            for (int i = 0; i < list.size(); i++) {
                // Math.pow를 사용해서 10진법으로 바꾸기 
                answer += (int) (list.get(list.size() - 1 - i) * (Math.pow(3, i))); 
            }
        }
        return answer;
    }
}

💡 정리하기

👉 한 개의 테스트케이스만 실패가 떴었는데, 3보다 작은 수를 생각하지 못했었다. Math.pow는 입출력값이 모두 double형이다.

0개의 댓글