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 |