[프로그래머스/Java]Level1 - 3진법 뒤집기
2021. 10. 22. 10:16ㆍ프로그래머스/Java | Level1
728x90
반응형
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
문제 설명 |
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. |
제한 조건 |
|
입출력 예 |
|
n | result |
45 | 7 |
125 | 229 |
|
나의 풀이
1. 입력 받은 n을 3진수로 변환할 때 역수로 저랑
2. 3진수를 10진수로 변환 후 리턴
class Solution {
public int solution(int n) {
int answer = 0;
String ternary = ""; // 3진수 변환값 저장
int div = n;
// 1. n을 3진수로 변환
while (div>=3) {
ternary = (div % 3) + ternary;
div /= 3;
}
ternary = div + ternary;
// 2. 3진수를 10진수로 변환
int i = 0;
for (String t : ternary.split("")) {
answer += Integer.parseInt(t) * (int) Math.pow(3, i);
i++;
}
return answer;
}
}
JAVA1 코드 정리
1. 입력받은 n을 3진법으로 변환
2. 3진법으로 변환한 값을 뒤집기 : StringBuilder(a).reverse()
3. 3진법을 10진법으로 변환 : Integer.parseInt(a,3)
class Solution {
public int solution(int n) {
String a = "";
while(n > 0){
a = (n % 3) + a;
n /= 3;
}
a = new StringBuilder(a).reverse().toString();
return Integer.parseInt(a,3);
}
}
* 10진수 변환 방법
- Integer.valueOf([값], [진수])
- Integer.parseInt([값],[진수])
728x90
반응형
'프로그래머스 > Java | Level1' 카테고리의 다른 글
[프로그래머스/Java]Level1 - 약수의 개수와 덧셈 (0) | 2021.12.20 |
---|---|
[프로그래머스/Java]Level1 - 키패드 누르기 (0) | 2021.09.26 |
[프로그래머스/Java]Level1 - 시저 암호 (0) | 2021.09.24 |
[프로그래머스/Java]Level1 - 내적 (0) | 2021.09.23 |
[프로그래머스/Java]Level1 - 신규 아이디 추천 (0) | 2021.09.15 |