[프로그래머스] 3진법 뒤집기

앙이🐯·2021년 12월 19일
0

알고리즘

목록 보기
7/22

프로그래머스 3진법 뒤집기

1. 문제 설명

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

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

  • 입출력 예제

    nresult
    457
    125229
  • 입출력 예 설명
    * 입출력 예 #1

    n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
    45120000217
    따라서 7을 return 해야 합니다.

    * 입출력 예 #2

    n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
    1251112222111229
    따라서 229를 return 해야합니다.

2. 문제 풀이

  • 3진법으로 변환하기 위해 n을 3으로 나눈 나머지를 String 변수에 붙여준 후, n을 3으로 나눠주고 이 과정을 n이 되기 전까지 반복해준다.

    String num="";
    
    while(n>0){
        num+=n%3;
        n=n/3;
    }
  • String 변수에 계속 뒤에 이어붙여주면 앞뒤 반전된 3진법이 된다.

  • 앞뒤 반전된 3진법 값이 저장된 String 변수 값을 10진법으로 변환해준다.
    Integer.parseInt(string 변수, 3)

코드
import java.util.*;

class Solution {
   public int solution(int n) {
       int answer = 0;
       String num="";
       
       while(n>0){
           num+=n%3;
           n=n/3;
       }
       answer=Integer.parseInt(num, 3);
      
       return answer;
   }
}
실행 결과

0개의 댓글