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

김동현·2022년 6월 13일

3진법 뒤집기 문제
https://programmers.co.kr/learn/courses/30/lessons/68935

문제설명

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



내 코드

class Solution {
    public int solution(int n) { // n이 45이면
        String str = new StringBuilder(Integer.toString(n, 3)).reverse().toString(); // 0021
        return Integer.parseInt(str, 3); // 7
    }
}
  • Integer.toString(정수, n진수)를 통해 n진수 수를 만든 후 .reverse()를 통해 뒤집어주며 .toString()을 통해 StringBuilder를 String으로 변환해준다.
  • Integer.parseInt()를 통해 앞에 있는 의미 없는 0 들을 없애주고 다시 10진법으로 표시해준다.

알게된 점

  • 무언가를 뒤집을 때 StringBuilder.reverse()를 바로 생각할 수 있게끔 하자!!
profile
오늘은 오늘

0개의 댓글