문제 설명

자연수 n이 매개변수로 주어집니다.

n을 3진법 상에서 앞뒤로 뒤집은 후,

이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.


제한사항

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

입출력 예

 

입출력 예 설명

 

 

 

 


 

<해야하는거>

1. 3진법으로 변경

2. (3진법으로바뀐거를) 앞뒤 바꿈

3.이걸 10진법으로 변경

 

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

public class _3진법뒤집기 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(solution(45));

	}
	
    public static int solution(int n) {
        int answer = 0;

        String val = "";
        
        // 3진법으로 변경
        while(n > 0){
        	val =val + (n % 3);  // 나머지
            n = n / 3;           // 몫
        }
        
        // 앞뒤 바꿈
        // 10진법으로 변경
        int j = 0; // 몇번째인지
        for(int i = val.length()-1; i >= 0; i--){
            answer += (val.charAt(i) - '0') * Math.pow(3, j);
            j++;
        }
        
        return answer;
    }

}

 

 

 

 

 

 

(참고)

2진수->10진수 변경

 

 

 

 

 


 

 

다른 분들,,풀이

 

이런 방법이,,, StringBuilder로 뒤집어 버리는 방법도 있었군,,

그런다음에

Integer.parseInt(~)로 그냥 3진법으로 바꿔부리네.,,

 

 

 

 

 

(참고)

m.blog.naver.com/icbanq/221727893563