728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/68935
풀이
Level 1 문제이고 쉽게 풀었음. 그래서 안 올리려고 했는데, 다른 풀이들을 찾아보다가 완전 처음 알게된 사실이 있어서 글을 씁니당 ㅎㅎㅎ
일단 풀이는
%연산이랑 /연산을 잘 활용해서 3진법을 잘 만들고 sb.reverse()로 뒤집거나 뭐 등등 뒤집어서 다시 3진법으로 만들면 됨 !
그런데 처음 알게된 사실
Integer.parseInt()에 인수가 하나 더 들어갈 수 있다는 것!!! 그리고 뒤에 인수로 들어가는 애는 몇진법으로 변환해줄지를 정함 !
예를 들면 Integer.parseInt(str, 3)이면 str을 3진법으로 변환해준다는 것 !
첨알았네 완전 신기하당... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
자세한건 주석으로 !
코드
// 코딩테스트 연습 - 월간 코드 챌린지 시즌1 - 3진법 뒤집기
// https://school.programmers.co.kr/learn/courses/30/lessons/68935
package PROGRAMMERS.level1;
public class Num68935_3진법뒤집기 {
private static class Solution {
public int solution(int n) {
String answerStr = "";
while (n != 0) {
answerStr += n % 3; // 3진법 거꾸로
n /= 3;
}
// 3진법으로 반환
return Integer.parseInt(answerStr, 3);
}
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.solution(45));
System.out.println(sol.solution(125));
}
}
}
728x90