level 1에다가 간단한 문제지만, Integer나 StringBuffer에 관한 활용이 없으면 꽤나 돌아갈 것 같은 문제다.
먼저 int 로 받아준 자연수 n 을 String 으로 변환해 준다.
이 때 Integer 안의 toString 메소드를 사용 해 주는데, 괄호 안에 (숫자, 숫자) 형식으로 작성하면 왼쪽의 숫자를 오른쪽 숫자의 진법으로 변환 하여 String으로 변경 해 준다.
(변환하는 이유는 StringBuffer를 통해 쉽게 뒤집어 주려고)
String str = Integer.toString(n, 3);
그 다음 StringBuffer를 사용하여 문자열을 뒤집어 준다.
이 때 StringBuffer 객체를 만들어서 사용한다.
StringBuffer sb = new StringBuffer(str);
String reversedStr = sb.reverse().toString();
이러면 일단 3진법으로 변환하여 뒤집는데 까지는 성공.
다시 10진법으로 변환해야 하는데, 방법은 전과 비슷하다.
그런 다음 반환해주면 끝!
int answer = Integer.parseInt(reversedStr,3);
return answer;
여기까지다.
이 문제에서 나같은 초보자가 배워야 할 것들.
인데 StringBuffer에 대해서는 나중에 따로 공부하여 포스팅 해야겠다.