내 풀이
StringBuilder로 reverse를 할까 했는데 StringBuilder <-> Integer 왔다갔다 하면 속도가 느려질까봐 어케든 integer로만 풀려고 했음
import java.util.*;
class Solution {
public int solution(int n) {
List<Integer> list = new ArrayList<>();
int answer = 0;
int j = 1;
while(n > 0) {
list.add(n%3); // {0, 0, 2, 1}
n /= 3;
}
for(int i = list.size() - 1; i >= 0; i--) {
answer += list.get(i) * j;
j *= 3;
}
return answer;
}
}
다른 사람 풀이
깔끔하고 좋은데 속도가 느리긴 하구만 ...
class Solution {
public int solution(int n) {
String str = "";
while(n > 0) {
str = (n % 3) + str;
n /= 3;
}
str = new StringBuilder(str).reverse().toString();
return Integer.parseInt(str, 3);
}
}
'코딩테스트 > Programmers' 카테고리의 다른 글
[Programmers] 최소직사각형 (완전탐색) (0) | 2023.08.28 |
---|---|
[Programmers] 이상한 문자 만들기 (0) | 2023.08.26 |
[Programmers] 같은 숫자는 싫어 - 여러 방법 (0) | 2023.08.25 |
[Programmers] 약수의 개수와 덧셈 (0) | 2023.08.14 |
[Programmers] 제일 작은 수 제거하기 (0) | 2023.08.10 |