[Programmers] 3진법 뒤집기

Jay Mild Lee·2022년 11월 22일
0

Algorithm Problems

목록 보기
6/16

I. 3진법 뒤집기

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

1. 문제 설명

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

2. 제한 사항

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

3. 풀이

3진법으로 변환한 수를 거꾸로, 뒤집은 이후에 10진법으로 변환하는 문제.

결론적으로, 다음과 같이 진행했다.
1. 리스트를 생성해, n을 3으로 나눈 나머지를 추가한다.
2. n이 0보다 큰 동안 나누고 나머지를 추가하는 과정을 계속 반복한다.
3. 리스트에는 역순으로 정렬된 3진법의 각 자릿수가 저장된다.
4. 10진법으로 변환한다.

4. 소스 코드

import java.util.*;
class Solution {
    public int solution(int n) {
        int answer = 0;
        List<Integer> list_arr = new ArrayList<>();
        while(n>0){
            list_arr.add(n%3);
            n = n/3;
        }
        for (int i = 0; i < list_arr.size(); i++) {
            answer = answer*3 + list_arr.get(i);
        }
        return answer;
    }
}

0개의 댓글