3진법 뒤집기

이준경·2021년 5월 5일
0

<나의풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.*;
 
class Solution {
    public int solution(int n) {
        int answer = 0;
        int a =1;
        List<Integer> list=new ArrayList<>();
 
        while(true){
            list.add(n%3);
            n /= 3;
 
            if(n==0)
                break;
        }
        for(int i=list.size()-1; i>=0; i--){
            answer+=a*list.get(i);
            a*=3;
        }
 
 
        return answer;
    }
}
cs
  1. 주어진 n을 3으로 계속 나눳을때 0이 될때까지 3으로 나눈 나머지를 리스트에 차례대로 대입
  2. 리스트의 맨 마지막부터 반복하여 3씩 곱한수를 더함.
  3. answer 반환

<다른사람풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
    public int solution(int n) {
        String a = "";
 
        while(n > 0){
            a = (n % 3+ a;
            n /= 3;
        }
        a = new StringBuilder(a).reverse().toString();
 
 
        return Integer.parseInt(a,3);
    }
}
cs

1.StringBuffer의 reversed를 이용한 풀이법

0개의 댓글

관련 채용 정보