Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 3진법 뒤집기 (자바/Java) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - 3진법 뒤집기 (자바/Java)

luke-king 2024. 5. 19. 19:57

 

 

 

 

 

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


 

class Solution {
    public int solution(int n) {
        
        String res = Integer.toString(n, 3);

        String reverse = new StringBuilder(res).reverse().toString();

        int answer = Integer.parseInt(reverse, 3);
        
        return answer;
    }
}

 

오늘 문제는 "3진법 뒤집기" 문제다.

문제를 풀면서 입력값을 3진법으로 변환한 뒤 변환된 값을 거꾸로 뒤집고 다시 10진법으로 표현하는 과정 중 

런타임 에러가 났다.

for문을 사용해 3진법으로 변환한 값을 문자열로 변환한뒤 값의 길이만큼 반복해

3진법 받은 값을 한자리씩 10으로 나눠 문자열로 받았었는데 그 부분에서 런타임 에러가 난 거 같다.

그 부분에서 다시한번 생각해 봤더니 이렇게 더 간결하고 쉬운 코드가 나왔다.

 

그럼 바로 풀이를 해보겠다.

 

1. Integer.toString()을 사용해 입력받은 수를 3진법으로 변환한다.

 

2. 3진법으로 변환한 값을 거꾸로 출력해야 하기에 StringBuilder 객체를 받아 reverse() 함수를 사용한다.

 

3. 그럼 3진법을 거꾸로 결과값을 받아 10진법으로 나타내주면 끝이다.