Algorithm/Algorithm Test
[프로그래머스] 3진법 뒤집기(Java)
MarrRang
2021. 3. 28. 18:23
카테고리
기본 알고리즘
나만의 카테고리
아이디어 짜기
문제 링크
programmers.co.kr/learn/courses/30/lessons/68935
요점
- 진법 변환 방법에 대해 알아야한다.
- String 뒤집는 방법에 대해 알아야한다.
- Integer.parseInt(String str, int radix)
참고 지식
- [Java] Integer.parseInt(String str, int radix)
풀이 (Java)
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
String convertedString = makeRadix3(n);
convertedString = reverseString(convertedString);
answer = Integer.parseInt(convertedString, 3);
return answer;
}
private String makeRadix3(int n) {
String converted = "";
while(n > 0) {
converted = (n % 3) + converted;
n /= 3;
}
return converted;
}
private String reverseString(String str) {
StringBuffer sb = new StringBuffer(str);
return sb.reverse().toString();
}
}
각 부분을 함수형태로 만들고 메인 solution 함수는 간단하게 구성했습니다.
makeRadix3은 3진법으로 변환하는 함수인데 함수 내에서 '3'으로 하드코딩 되어 있는 부분만 원하는 진법으로 변경하면 모든 진법 변환 문제에 활용할 수 있습니다.
문자열을 뒤집는 방법은 구글에서 여러 방법을 찾아볼 수 있지만 지금까지 써본바로는 StringBuffer를 쓰는게 제일 편하더라구요 ㅎㅎ
알고리즘 초보가 정리한 글입니다
더 좋은 방법이나 코드에 대한 코멘트 언제나 환영합니다!
반응형