반응형
프로그래머스 3진법 뒤집기 - JAVA
문제 설명
- 자연수 n이 매개변수로 주어진다.
- n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return.
제한 사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
문제 풀이
- 주어진 n을 3진법으로 변환
- n % 3을 n이 0이 되기전까지 n / 3을 하며 반복함으로 3진법으로 변환할 수 있음.
- 변환한 3진법 수를 앞뒤로 뒤집는다.
- 다시 10진법으로 변환하는 return.
- 반전된 3진법 수의 뒷자리부터 3^i을 곱함으로 10진법으로 변환할 수 있음.
소스 코드
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
List<Integer> list = new ArrayList<>();
while (n != 0) {
list.add(n % 3);
n /= 3;
}
Collections.reverse(list);
for (int i = 0; i < list.size(); i++) {
answer += list.get(i) * Math.pow(3, i);
}
return answer;
}
}
반응형
'알고리즘(Algorithm) > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스] 두 개 뽑아서 더하기 - JAVA (0) | 2021.10.24 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 - JAVA (0) | 2021.10.23 |
[프로그래머스] 약수의 개수와 덧셈 - JAVA (0) | 2021.10.23 |
[프로그래머스] 폰켓몬 - JAVA (0) | 2021.10.23 |
[프로그래머스] 체육복 - JAVA (0) | 2021.10.22 |