본문 바로가기
코드문제풀이/JAVA

[자바] 3진법 뒤집기

by 똥쟁이핑크 2023. 7. 20.

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

 

프로그래머스

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

programmers.co.kr

 

문제설명

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

 

제한사항

  • n은 1 이상 100,000,000 이하인 자연수입니다.

 

입출력 예

n result
45 7
125 229

입출력 예 설명

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.
n(10진법) n(3진법) 앞뒤 반전(3진법) 10진법으로 표현
45 1200 0021 7
  • 따라서 7을 return 해야 합니다.

입출력 예 #2

  • 을 도출하는 과정은 다음과 같습니다.
n(10진법) n(3진법) 앞뒤 반전(3진법) 10진법으로 표현
125 11122 22111 229
  • 따라서 229를 return 해야 합니다.

나의 문제 풀이

1) 3진법으로 바꾸면서 해당 숫자는 문자열로 바꿔주었다.

2) reverse() 메소드를 쓰기 위해 Stringbuffer를 선언하고 문자열로 바꾼 변수는 뒤집어 준다.

3) 뒤집어준 문자열은 다시 10진법으로 바꿔준다.

class Solution {
    public int solution(int n) {
        String a = Integer.toString(n, 3); // 3진법으로 바꾸기
        StringBuffer b = new StringBuffer(a); // Stringbuffer 선언
        String reverse = b.reverse().toString(); // 문자열 뒤집기
        int answer = Integer.parseInt(reverse, 3); //10진법으로 바꾸기       
        return answer;
    }
}

 

 

참고한 사이트

 

진법 바꾸는 사이트

https://cornarong.tistory.com/48

 

[JAVA] 진법 변환 정리 (n진수 <-> 10진수)

1. 10진수 -> n진수 * 변환하기 전에 확인! 10진수를 제외한 나머지 진수는 String으로 받아야 한다. -> int는 전부 10진수로 인식 2진수, 8진수, 16진수는 아래와 같이 Binary, Octal, Hex함수가 존재한다. 물

cornarong.tistory.com

 

문자열 뒤집기 

https://hianna.tistory.com/543

 

[Java] 문자열 거꾸로 뒤집기

문자열을 거꾸로 뒤집는 방법 2가지를 소개합니다. 반복문 사용하기 StringBuffer / reverse() 메소드 사용하기 1. 반복문 사용하기 코드 public class StringReverse { public static void main(String[] args) { // 문자열 S

hianna.tistory.com

 

'코드문제풀이 > JAVA' 카테고리의 다른 글

[자바] 시저 암호  (0) 2023.07.21
[자바] 콜라 문제  (0) 2023.07.21
[자바] 추억 점수  (0) 2023.07.19
[자바] 예산  (0) 2023.07.18
[자바] 최대공약수와 최소공배수  (0) 2023.07.14