본문 바로가기
Algorithm/PROGRAMMERS[Java]

Lv1. 3진법 뒤집기

by 씨니 2022. 4. 17.
728x90

▶ 문제

 

▶ 풀이방법

- 내가 풀이한 방법

import java.util.*;
class Solution {
    public int solution(int n) {
        int answer = 0;
        Stack<Integer> st = new Stack<>();
		while(n > 0) { //10진수 3진법으로 변환해 stack에저장
			st.add(n % 3);
			n /= 3;
		}
		
		int count = 1;
		while(!st.isEmpty()) { //stack은 나중에 넣은 것부터 출력되기 때문에
			answer += st.pop() * count; //출력된 순서대로 10진수로 바꿔 계산
			count *= 3;
		}
        return answer;
    }
}

 

-다른 사람들이 풀이한 간단한 방법

class Solution {
    public int solution(int n) {
        int answer = 0;
       
        String s = "";
        while(n > 0){ //10진수 3진법으로 변환해 string변수에 하나씩 더해줌.
            s = (n % 3) + s;
            n /= 3;
        }
        
        s = new StringBuilder(s).reverse().toString();
        answer = Integer.parseInt(s, 3); // s를 3진법으로 출력
        return answer;
    }
}

++ 위의 코드에서 Integer.parseInt(s, n) s를 n진법으로 나타내는 함수형태로 표현할 수 있다는것을 처음 알게됨.

728x90

'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글

Lv1. 실패율[카카오]  (0) 2022.04.18
Lv1. 약수의 개수와 덧셈  (0) 2022.04.17
Lv1. 예산  (0) 2022.04.17
Lv1. 두 개 뽑아서 더하기  (0) 2022.04.17
Lv1. 2016년  (0) 2022.04.17