| 문제 | 레벨 | 정답률 |
|---|---|---|
| 3진법 뒤집기 | Lv.1 | 76% |

import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
ArrayList<Integer> rest = new ArrayList<>();
int value = n;
while(value>=3){
value = n/3;
rest.add(n%3);
n /= 3;
}
rest.add(value);
int p = 0;
for(int j = rest.size()-1; j>=0; j--){
answer += rest.get(j)*Math.pow(3, p++);
}
return answer;
}
}
우선 처음에는 숫자를 배열에 저장을 했는데, 배열 크기를 미리 설정하기 어려워 ArrayList로 변경하였다.
ArrayList : 배열과 유사하지만 크기를 동적으로 조절 가능한 자료구조
🤍 요소 추가 : add()
🤍 요소 반환 : get()
🤍 요소 크기 반환 : size()
제곱 계산 : Math.pow(a,b);
조합, 제곱 등등 수학 관련 계산은 주로 Math 클래스를 활용한다. a의 b제곱 계산도 pow() 메서드로 쉽게 할 수 있다.
여기서 말이 나온김에 Math 클래스의 메서드들을 짚고 가보자.
| 메서드 | 설명 |
|---|---|
| abs(x) | 절댓값 |
| ceil(x) | 올림한 정수 |
| floor(x) | 내림한 정수 |
| max(x,y) | 큰 값 반환 |
| min(x,y) | 작은 값 반환 |
| pow(x,y) | 거듭제곱 계산 |
| sqrt(x) | 제곱근 계산 |
| exp(x) | 자연로그 e의 거듭제곱 값 계산 |
| log(x) | 상용로그 값 계산 |
| sin(x), cos(x), tan(x) | 삼각함수 계산 |
| asin(x), acos(x), atan(x) | 역삼각함수 계산 |
종종 쓰는건 요정도..?
사실 검색하면 다 나오는거지만 코테에선 대부분 인터넷 사용이 불가능하니 외워둡시다요-