-
프로그래머스 - Lv1. 3진수 뒤집기PS 2022. 2. 27. 23:09
문제 : 3진수 뒤집기
- 문제 내용은 여기.
- 쉽게 말해, 어... 문제가 워낙 간단해서 쉽게 말할 것도 없다.
풀이
1) 처음 푼 방식 : 기능별로 메서드 나눔
class Solution { public int solution(int n) { String rt = getReverseTernary(n); return ternaryToDecimal(rt); } public String getReverseTernary(int number) { StringBuilder tNumbers = new StringBuilder(); while(true) { if (number < 3) { tNumbers.append(number); break; } tNumbers.append(number % 3); number /= 3; } return tNumbers.toString().replaceAll("^0+", ""); } public int ternaryToDecimal(String ternary) { int total = 0, digit = ternary.length(); for (char s : ternary.toCharArray()) { digit -= 1; total += (Character.getNumericValue(s) * Math.pow(3, digit)); } return total; } }
2) 다시 푼 방식 : 불필요한 로직 수정 & 알고 보니 java api에서 지원되는 기능
public int solution(int n) { StringBuilder tNumbers = new StringBuilder(); while(n > 0) { tNumbers.append(n % 3); n /= 3; } return Integer.parseInt(tNumbers.toString(), 3); }
- 구현 아이디어 자체는 어려울 게 없다, 문제가 원하는 대로 구해주는게 전부. 이제 단순구현은 너무 쉬운걸까(근데 이러면 내일 어려운 문제 나오고).
후기 : api 문서를 잘 보자
1 )
Integer.parseInt()
를 새로운 형태로 사용해봤다. 진법까지 바꿔줄거라곤 아예 생각도 못했었는데 오늘 처음 접했다.
2 ) 공부할 시간이 없었던 주말이지만, 가족과의 행복한 시간도 중요하다는 거. 신경쓸 일이 많아서 공부에 빡집중하는게 힘든 요즘이지만, 그 와중에 최선을 다한다는게 중요한 거겠지. 오늘은 인강으로 하루 마무리하고 내일부터 또 열심히 공부해보자.'PS' 카테고리의 다른 글
프로그래머스 - Lv1. 2016년 (0) 2022.03.02 프로그래머스 - Lv1. 예산 (0) 2022.03.01 프로그래머스 - Lv1. 신고 결과 받기 (0) 2022.02.28 프로그래머스 - Lv1. 약수의 개수와 덧셈 (0) 2022.02.26 프로그래머스 - Lv1. 실패율 (0) 2022.02.25 프로그래머스 - Lv1. 폰켓몬 (0) 2022.02.24