코딩테스트/Programmers_LV1

Programmers_JAVA_3진법 뒤집기(진수변환 메소드사용x)

wn1331 2022. 11. 30. 20:40
반응형

 

 

문제 설명

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


제한사항
  • n은 1 이상 100,000,000 이하인 자연수입니다.

import java.util.*;
class Solution {
    public int solution(int n) {
        int answer = 0;
        int count = 1;
        ArrayList<Integer> arr = new ArrayList<>();
        //1.3진법으로 표기 후 ArrayList에 저장.
        while (n != 0) {
            arr.add(n % 3);
            n /= 3;
        }
        //2.뒤집으면서 10진법으로.
        for (int i = arr.size() - 1; i >= 0; i--, count *= 3) {
            answer += arr.get(i) * count;
        }
        return answer;
    }
}

 

반응형