잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록
현록의 기록저장소
[Lv1] 3진법 뒤집기 본문
programmers.co.kr/learn/courses/30/lessons/68935
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
n |
result |
45 |
7 |
125 |
229 |
입출력 예 설명
입출력 예 #1
- 답을 도출하는 과정은 다음과 같습니다.
n (10진법) |
n (3진법) |
앞뒤 반전(3진법) |
10진법으로 표현 |
45 |
1200 |
0021 |
7 |
- 따라서 7을 return 해야 합니다.
입출력 예 #2
- 답을 도출하는 과정은 다음과 같습니다.
n (10진법) |
n (3진법) |
앞뒤 반전(3진법) |
10진법으로 표현 |
125 |
11122 |
22111 |
229 |
- 따라서 229를 return 해야 합니다.
public int solution(int n) {
StringBuilder stringBuilder = new StringBuilder();
while (n > 2) {
stringBuilder.append(n % 3);
n /= 3;
}
if (n > 0) {
stringBuilder.append(n);
}
char[] array = stringBuilder.reverse().toString().toCharArray();
int answer = 0;
for (int i = 0; i < array.length; ++i) {
answer += (Math.pow(3, i) * (array[i] - '0'));
}
return answer;
}
'Problem Solving > programmers' 카테고리의 다른 글
[Lv2] 튜플 (0) | 2021.04.14 |
---|---|
[Lv2] 문자열 압축 (0) | 2021.04.13 |
[Lv1] 키패드 누르기 (0) | 2021.04.13 |
[Lv1] 다트 게임 (0) | 2021.04.13 |
[Lv1] 비밀지도 (0) | 2021.04.13 |
Comments
잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록