[Programmers][Level1] 3진법 뒤집기

울부짖는 늑대·2023년 7월 7일

문제 설명

자연수 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를 turn 해야 합니다.

나의 코드

class Solution {
    public int solution(int n) {
        String answer = "";
        for (int i = 0; i < Integer.toString(n, 3).length(); i++) {
            answer += String.valueOf(Integer.toString(n, 3).charAt(Integer.toString(n, 3).length() - 1 - i));
        }
        return Integer.parseInt(answer, 3);
    }
}

풀이 방법

  • Integer 클래스에는 여러가지 진법의 함수가 존재한다.
  • 입력받은 수 n을 3진법으로 바꾸고 그 갯수만큼 루프를 돌려서 answer에 거꾸로 대입해준다.
  • 마지막으로 answer를 10진수로 바꾸고 리턴하면 되는 문제이다.

profile
이상을 현실로 구현하는 개발자

0개의 댓글