ygreenb
yellowgreenblue
ygreenb
전체 방문자
오늘
어제
  • TIL (130)
    • Algorithm & Data Structure (70)
      • 이론 (4)
      • 프로그래머스 (54)
      • 백준 (12)
    • JAVA (4)
    • Android Studio (9)
    • Database (1)
    • WEB (25)
      • HTML+CSS (7)
      • Javascript (5)
      • React (11)
      • Django (1)
      • Node.js (1)
    • Computer Vision (13)
    • Git (8)

블로그 메뉴

  • HOME
  • TAG
  • GITHUB

공지사항

인기 글

태그

  • Arrays.sort()
  • compareTo()
  • stack
  • React
  • 안드로이드
  • greedy
  • PriorityQueue
  • 프로그래머스 Lv.2
  • java
  • 백준
  • 해시
  • git bash
  • Android
  • 깃
  • Comparator
  • DP
  • BFS
  • sort
  • getOrDefault
  • 프로그래머스
  • dfs
  • HashMap
  • Queue
  • kotiln
  • 스택/큐
  • 코틀린
  • git
  • entrySet
  • reactjs
  • 깃허브

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ygreenb

yellowgreenblue

Algorithm & Data Structure/프로그래머스

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

2022. 2. 7. 07:50

https://programmers.co.kr/learn/courses/30/lessons/68935?language=java 

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr

 

풀이

10진법 -> 3진법 변환

나머지가 0이 될때까지 나눠주며 몫을 저장한다. 45의 경우 sb에 0021이 저장된다.

3진법 -> 10진법 변환

자릿수에 맞게 3의 배곱근을 곱해주며 다시 더한다. 0021을 reverse()함수로 반전해서 1200으로 만들고 곱해서 수월하다.

class Solution {
    public int solution(int n) {
        StringBuilder sb = new StringBuilder();
        while(n!=0){
            sb.append(n%3);
            n = n/3 ;
        }
            
        int answer=0;
        sb.reverse();
        for(int i = 0 ; i < sb.length();i++){
            answer += (int)Math.pow(3,i)*(sb.charAt(i) - '0');
        } 
        return answer;
    }
}

 

+

다른사람풀이

parseInt()를 이용해 3진법->10진법으로 변환했다.

class Solution {
    public int solution(int n) {
        String a = "";

        while(n > 0){
            a = a + (n % 3);
            n /= 3;
        }
        a = new StringBuilder(a).reverse().toString();

        return Integer.parseInt(a,3);
    }
}
저작자표시 (새창열림)

'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글

[Java] 프로그래머스 : 시저 암호  (0) 2022.02.08
[Java] 프로그래머스 : 콜라츠 추측  (0) 2022.02.07
[Java] 프로그래머스 : 이상한 문자 만들기  (0) 2022.02.07
[Java] 프로그래머스 : 문자열 내 마음대로 정렬하기  (0) 2022.02.07
[Java] 프로그래머스 : 문자열 내림차순으로 배치하기 (feat. String <-> char[])  (0) 2022.01.31
    'Algorithm & Data Structure/프로그래머스' 카테고리의 다른 글
    • [Java] 프로그래머스 : 시저 암호
    • [Java] 프로그래머스 : 콜라츠 추측
    • [Java] 프로그래머스 : 이상한 문자 만들기
    • [Java] 프로그래머스 : 문자열 내 마음대로 정렬하기
    ygreenb
    ygreenb
    개발공부기록장

    티스토리툴바