java 프로그래머스 [Level 1] _3진법 뒤집기

2021. 4. 30. 17:55프로그래머스 알고리즘/코딩 테스트 문제

반응형

 

출제 링크 : programmers.co.kr/learn/courses/30/lessons/68935

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr

 


 

import java.util.Stack;

class Solution {
	public int solution(int n) {
		int answer = 0;
		Stack<Integer> temp = new Stack<Integer>();

		while (n >= 3) {
			temp.add(n % 3);
			n = n / 3;
		}
		
		temp.add(n);
//		System.out.println(temp);
		int index = 0;
		while (!temp.isEmpty()) {
			int dammy = Integer.parseInt(String.valueOf(temp.pop()));
//			System.out.println("dammy : " + dammy );
			if (index == 0) {
				answer += dammy;
			} else if (index == 1) {
				answer += (dammy * 3);
			} else {
				int in = (int) Math.pow(3, index);
				answer += dammy * in;
			}
			index++;
		}

		return answer;
	}
}

 

반응형