[Java] 프로그래머스 3진법 뒤집기
2023. 2. 9. 17:41ㆍ알고리즘
728x90
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
코드 설명
import java.util.ArrayList;
import java.util.Scanner;
public class Solution {
// 방법1
// public int solution(int n) {
// int answer = 0;
// ArrayList<Integer> list = new ArrayList<>();
// // 10진법 -> 3진법
// while(n > 0) {
// list.add(n%3);
// n = n / 3;
// }
// // 3진법 -> 10진법
// int tmp = 1;
// for(int i=list.size()-1;i>=0;i--) {
// answer += list.get(i)*tmp;
// tmp *= 3;
// }
// return answer;
// }
// 방법2
public int solution(int n) {
int answer = 0;
String a = Integer.toString(n,3); // int n을 3진법으로 변환해서 String a에 저장
a = new StringBuilder(a).reverse().toString(); // a를 StringBuilder를 이용해서 뒤집어주고 a에 저장해줌.
answer = Integer.parseInt(a, 3); // answer에 a값을 3진법에서 int(10진법)로 바꿔서 저장해줌.
return answer;
}
public static void main(String[] args) {
Solution T = new Solution();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(T.solution(n));
sc.close();
}
}
728x90
'알고리즘' 카테고리의 다른 글
[Java] 프로그래머스 크레인 인형뽑기 게임 (0) | 2023.02.10 |
---|---|
[Java] 프로그래머스 두 개 뽑아서 더하기 (0) | 2023.02.09 |
[Java] 프로그래머스 내적 (0) | 2023.02.09 |
[Java] 프로그래머스 신규 아이디 추천 (0) | 2023.02.09 |
[Java] 프로그래머스 로또의 최고 순위와 최저 순위 (0) | 2023.02.09 |