본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [3진법 뒤집기] 자바 Lv.1

by tripleup 2023. 8. 11.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 월간 코드 챌린지 시즌1 -> 3진법 뒤집기

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


해결 과정

 

두 개의 해결법을 찾았으므로 소스 코드와 함께 해결과정을 살펴보자.

 

소스 코드

 

(1) 

import java.util.*;

class Solution {
    public int solution(int n) {
        int answer = 0;
        String ans = "";
        
        while(n != 0) {
            ans += n%3;
            n /= 3;
        }
        // 3진수인 a를 10진수로
        return Integer.parseInt(ans, 3);
    }
}

 

(2)

import java.util.*;

class Solution {
    public int solution(int n) {
        int answer = 0;
        ArrayList<Integer> list = new ArrayList<>();
        // 10진법 -> 3진법
        while(n != 0) {
            list.add(n%3);
            n /= 3;
        } 
        // 3진법 -> 10진법
        int tmp = 1;
        for(int i=list.size()-1;i>=0;i--) {
            answer += list.get(i)*tmp;
            tmp *= 3;
        }
        return answer;
    }
}

 

 


728x90
반응형

댓글