진법 변환
3진법 뒤집기 : Level1
https://school.programmers.co.kr/learn/courses/30/lessons/68935
처음 작성한 코드
class Solution {
public int solution(int n) {
String n3 = Integer.toString(n, 3);
int answer = n3.charAt(0) - '0';
for (int i = 1; i < n3.length(); i++) {
int cnt = 1;
for (int j = 0; j < i; j++) cnt *= 3;
answer += cnt * (n3.charAt(i) - '0');
}
return answer;
}
}
10진수 -> n진수 변환
// 테스트를 위한 10진수 값 = 45
int n = 45;
String s = "";
10진수 -> 2진수
s = Integer.toBinaryString(n);
s = Integer.toString(n,2);
10진수 -> 3진수
s = Integer.toString(n,3);
10진수 -> 4진수
s = Integer.toString(n,4);
10진수 -> 5진수
s = Integer.toString(n,5);
10진수 -> 6진수
s = Integer.toString(n,6);
10진수 -> 7진수
s = Integer.toString(n,7);
10진수 -> 8진수
s = Integer.toOctalString(n);
s = Integer.toString(n,8);
10진수 -> 16진수
s = Integer.toString(n,16);
s = Integer.toHexString(n);
10진수 -> n진수 변환
// 테스트를 위한 n진수 값 = 45
String s = "1200";
int n = 0;
2진수 -> 10진수
n = Integer.parseInt(a,3);
3진수 -> 10진수
n = Integer.parseInt(a,3);
4진수 -> 10진수
n = Integer.parseInt(a,4);
5진수 -> 10진수
n = Integer.parseInt(a,5);
6진수 -> 10진수
n = Integer.parseInt(a,6);
7진수 -> 10진수
n = Integer.parseInt(a,7);
8진수 -> 10진수
n = Integer.parseInt(a,8);
16진수 -> 10진수
n = Integer.parseInt(a,16);
다른 사람 풀이
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진수 -> 3진수 변환
while(n > 0){
a = (n % 3) + a;
n /= 3;
}
StringBuilder의 reverse()
=> StringBuilder의 문자열을 역순으로 뒤집는다.
String original = "Hello, World!";
StringBuilder reversed = new StringBuilder(original).reverse();
String result = reversed.toString();
System.out.println(result); // 출력: "!dlroW ,olleH"
=> 위의 코드에서 StringBuilder(original)는 주어진 문자열을 가진 StringBuilder 인스턴스를 생성하고, reverse() 메서드는 이를 역순으로 뒤집는다. 마지막으로 toString() 메서드를 사용하여 역순으로 뒤집힌 문자열을 얻을 수 있다.
문제점 : 진수 변환 방법을 잘 몰랐다.
해결 방법 : 자바에서 진수 변환 방법을 검색하여 알아내 문제를 풀 수 있었다.
깨달은 바 : 자바에서 진수 변환 방법을 쉽게 하는 방법에 대해 배울 수 있었다.
'코딩테스트 > programming_JAVA' 카테고리의 다른 글
[Java] 프로그래머스_12915 : 문자열 내 마음대로 정렬하기 (0) | 2023.12.15 |
---|---|
[Java] 프로그래머스_81301 : 숫자 문자열과 영단어 (0) | 2023.12.13 |
[Java] 프로그래머스_12906 : 같은 숫자는 싫어 (2) | 2023.12.05 |
[Java] 프로그래머스_12940 : 최대공약수와 최소공배수 (0) | 2023.12.04 |
[Java] 프로그래머스_12943 : 콜라츠 추측 (0) | 2023.11.29 |