코딩테스트/Programmers
[Programmers] 3진법 뒤집기
주니어주니
2023. 8. 25. 19:47
내 풀이
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);
}
}