현재노트
[프로그래머스] 3진법 뒤집기(Java) - Level1 본문
문제링크
https://programmers.co.kr/learn/courses/30/lessons/68935
문제내용
요점
- 3진법 변환 방법에 대한 개념을 알아야한다.
- String을 뒤집어서 표현하는 방법에대해 알아야한다.
- 10진수 변환 방법에 대한 개념을 알아야한다.
public int solution(int n) {
int answer = 0;
String converted = "";
String reverseStr = "";
while(n > 0){
converted = n%3 + converted;
n /= 3;
}
StringBuilder sb = new StringBuilder(converted);
reverseStr = sb.reverse().toString();
answer = Integer.parseInt(reverseStr, 3);
return answer;
}
첫번째로 while문을 통해서 3진법 변환을 한다. 이후 변환된 수를 뒤집기위해 StringBuilder의 reverse() 메소드를 활용하여 String을 뒤집어주고, 이후 뒤집혀진 String을 int형태로 파싱하면서 2번째 파라미터로 몇진수의 수를 10진수로 파싱하는지 값을 넣어주어 결과를 도출한다.
※ StringBuffer를 사용하지 않은 이유는 멀티스레드의 경우 동기화를 위해서 StringBuffer를 사용해야하지만, 싱글스레드의 경우 성능면에서 StringBuilder가 더 우수하기 때문에 StringBuilder로 구현하였다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 두 개 뽑아서 더하기(Java) - Level1 (0) | 2021.08.10 |
---|---|
[프로그래머스] 음양 더하기(Java) - Level1 (0) | 2021.08.07 |
[프로그래머스] K번째수(Java) - Level1 (0) | 2021.08.07 |
[프로그래머스] 부족한 금액 계산하기(Java) - Level1 (0) | 2021.08.02 |
Comments