728x90
728x90
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
2. 제한사항
n은 1 이상 100,000,000 이하인 자연수입니다.
3. 입출력 예
n | result |
45 | 7 |
125 | 229 |
4. 입출력 예 설명
- 입출력 예 #1
답을 도출하는 과정은 다음과 같습니다.
n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
45 | 1200 | 21 | 7 |
따라서 7을 return 해야 합니다.
- 입출력 예 #2
답을 도출하는 과정은 다음과 같습니다.
n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
125 | 11122 | 22111 | 229 |
따라서 229를 return 해야 합니다.
5. 풀이
class Solution {
public int solution(int n) {
int answer = 0;
String b = "";
while (n!=0) {
b += (n % 3);
n = n / 3;
}
int cnt = b.length()-1;
for (int i = 0; i < b.length(); i++) {
int a = 0;
a = Integer.parseInt((String) b.subSequence(i, i + 1));
answer += a * Math.pow(3, cnt--);
}
return answer;
}
}
1.
n을 3진법으로 만들고 바로 역순으로 b에 저장
2.
b를 숫자 하나씩 가져와서 10진수로 계산
728x90
728x90
'코딩테스트(Level 0~1)' 카테고리의 다른 글
[JAVA, Programmers] 숫자 문자열과 영단어(자바, kakao) (0) | 2022.11.25 |
---|---|
[JAVA, Programmers] 시저 암호(자바) (0) | 2022.11.25 |
[JAVA, Programmers] 최소직사각형(자바) (0) | 2022.11.25 |
[JAVA, Programmers] 예산(자바) (0) | 2022.11.24 |
[JAVA, Programmers] [1차] 비밀번호(자바, kakao) (0) | 2022.11.24 |