life is egg
3진법 뒤집기 본문
import java.util.ArrayList;
class Solution {
public int solution(int n) {
//3^0,3^1,3^2,3^3,
//0,0,2,1
//2*9 + 1*27
ArrayList<Integer> arrayList = new ArrayList<>();
//10진법을 어떻게 3진법으로 바꿈 ? 3으로 나눔 ?
while(n>0){
//45 -> 15 ->5 ->3,2
// 일단 0 0 2 //!!1 ///
//125 -> 123 ->41 ->39 ->13 -> 12 ->4 -> 3
// 2 2 1 1 //1
if(n%3==0){
arrayList.add(0);
n/=3;
} else if ((n-1)%3==0){
arrayList.add(1);
n = (n-1)/3;
}else if((n-2)%3==0){
arrayList.add(2);
n = (n-2)/3;
}
//이게 뒤집혀진 결과이고 ..!
}
int answer = 0;
int tree = 1;
for(int i = arrayList.size()-1; i>=0;i--){
answer += arrayList.get(i)*tree;
tree*=3;
}
return answer;
}
}
어지쩌지 풀려서 다행인 문제... 기다려준 스터디 분들에게 감사를 ..!!,,
'알고리즘 > 프로그래머스' 카테고리의 다른 글
배열 회전 시키기 (0) | 2023.01.12 |
---|---|
[연습문제]하샤드의 수 (0) | 2022.12.26 |
[Lv.0]분수의 덧셈 (1) | 2022.11.17 |
Comments