코딩테스트/프로그래머스

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

GAEBAL 2022. 11. 22. 23:35
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이

Level 1 문제이고 쉽게 풀었음. 그래서 안 올리려고 했는데, 다른 풀이들을 찾아보다가 완전 처음 알게된 사실이 있어서 글을 씁니당 ㅎㅎㅎ

 

일단 풀이는

%연산이랑 /연산을 잘 활용해서 3진법을 잘 만들고 sb.reverse()로 뒤집거나 뭐 등등 뒤집어서 다시 3진법으로 만들면 됨 !

 

그런데 처음 알게된 사실

Integer.parseInt()에 인수가 하나 더 들어갈 수 있다는 것!!! 그리고 뒤에 인수로 들어가는 애는 몇진법으로 변환해줄지를 정함 !
예를 들면 Integer.parseInt(str, 3)이면 str을 3진법으로 변환해준다는 것 !

첨알았네 완전 신기하당... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

 

자세한건 주석으로 !

 

 

코드

// 코딩테스트 연습 - 월간 코드 챌린지 시즌1 - 3진법 뒤집기
// https://school.programmers.co.kr/learn/courses/30/lessons/68935

package PROGRAMMERS.level1;

public class Num68935_3진법뒤집기 {
    private static class Solution {
        public int solution(int n) {
            String answerStr = "";
            while (n != 0) {
                answerStr += n % 3; // 3진법 거꾸로
                n /= 3;
            }

            // 3진법으로 반환
            return Integer.parseInt(answerStr, 3);
        }

        public static void main(String[] args) {
            Solution sol = new Solution();

            System.out.println(sol.solution(45));
            System.out.println(sol.solution(125));
        }
    }
}
728x90