3진법 뒤집기

김나영·2023년 6월 20일
0

프로그래머스

목록 보기
29/39

문제 : 3진법 뒤집기

풀이

  • 3진법은 10진법으로 표현되어 있는 수를 3으로 계속 나눈 나머지를 뒤에서부터 올림
String three = "";
  • 3진법 수를 담을 변수 three를 선언
while(n>0) {
    int num = n % 3;
    n = n / 3;
    three += String.valueOf(num);
}
  • n의 값이 0보다 클 때까지 반복

  • n % 3의 나머지를 담을 int 타입의 변수 num 생성

  • n을 3으로 나누고 그 값을 다시 n에 저장

  • num을 문자열로 만들어서 three에 넣어줌

return Integer.parseInt(three,3); // 10진수를 3진수로 변환
  • N진수를 10진수로 변환할 때 Integer.parseInt(N진수, N) 사용

  • N진수의 타입은 String이기 때문에 String으로 3진법 수를 받음

전체 코드

class Solution {
    public int solution(int n) {
        String three = "";
        while(n>0) {
            int num = n % 3;
            n = n / 3;
            three += String.valueOf(num);
        }
        return Integer.parseInt(three,3); // 10진수를 3진수로 변환
    }
}

1. 10진수 --> N진수

  • Integer.toString(10진수, N)

  • ex)

System.out.println("10진수 -> 3진수");
System.out.println(Integer.toString(a,3));
System.out.println("10진수 -> 4진수");
System.out.println(Integer.toString(a,4));
System.out.println("10진수 -> 5진수");
System.out.println(Integer.toString(a,5));

2. N진수 --> 10진수

  • Integer.parseInt(N진수, N)

  • ex)

System.out.println("3진수 -> 10진수");
System.out.println(Integer.parseInt(a,3));
System.out.println("4진수 -> 10진수");
System.out.println(Integer.parseInt(a,4));
System.out.println("5진수 -> 10진수");
System.out.println(Integer.parseInt(a,5));

0개의 댓글