https://school.programmers.co.kr/learn/courses/30/lessons/120885
진법 변환 정리 (n진수 <-> 10진수)
1) 10진수 -> n진수
[JAVA] 진법 변환 정리 (n진수 <-> 10진수) (tistory.com)
- 10진수를 제외한 나머지 진수는 String으로 받아야 한다
-> int는 전부 10진수로 인식
toString(int n, int radix)
public class Solution {
public static void main(String[] args) {
// 테스트를 위한 10진수 값 = 25
int a = 25;
System.out.println("10진수 -> 2진수");
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toString(a,2));
System.out.println("10진수 -> 3진수");
System.out.println(Integer.toString(a,3));
System.out.println("10진수 -> 4진수");
System.out.println(Integer.toString(a,4));
System.out.println("10진수 -> 5진수");
System.out.println(Integer.toString(a,5));
System.out.println("10진수 -> 6진수");
System.out.println(Integer.toString(a,6));
System.out.println("10진수 -> 7진수");
System.out.println(Integer.toString(a,7));
System.out.println("10진수 -> 8진수");
System.out.println(Integer.toOctalString(a));
System.out.println(Integer.toString(a,8));
System.out.println("10진수 -> 16진수");
System.out.println(Integer.toString(a,16));
System.out.println(Integer.toHexString(a));
}
}
2) n진수 -> 10진수
- String타입으로 받은 n진수 값을 Integer.parseInt(string s, int radix) 함수에서 's' 변수에 넣고 넣은 값이 몇 진수 갓ㅂ인지 'radix'에 넣어 알려주어야 한다.
public class Solution {
public static void main(String[] args) {
// 테스트를 위한 n진수 값 = 25
String a = "110011";
System.out.println("2진수 -> 10진수");
System.out.println(Integer.parseInt(a,3));
System.out.println("3진수 -> 10진수");
System.out.println(Integer.parseInt(a,3));
System.out.println("4진수 -> 10진수");
System.out.println(Integer.parseInt(a,4));
System.out.println("5진수 -> 10진수");
System.out.println(Integer.parseInt(a,5));
System.out.println("6진수 -> 10진수");
System.out.println(Integer.parseInt(a,6));
System.out.println("7진수 -> 10진수");
System.out.println(Integer.parseInt(a,7));
System.out.println("8진수 -> 10진수");
System.out.println(Integer.parseInt(a,8));
System.out.println("16진수 -> 10진수");;
System.out.println(Integer.parseInt(a,16));
}
}
정답
class Solution {
public String solution(String bin1, String bin2) {
//2진수 -> 10진수
int a = Integer.parseInt(bin1,2);
int b = Integer.parseInt(bin2,2);
int sum = a+b;
//10진수->2진수
String answer = Integer.toString(sum,2);
return answer;
}
}
다른 사람의 풀이
class Solution {
public String solution(String bin1, String bin2) {
return Integer.toBinaryString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2));
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - k의 개수 (0) | 2024.05.12 |
---|---|
[JAVA] 프로그래머스 - A로 B 만들기 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - 치킨 쿠폰 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - 로그인 성공? (0) | 2024.05.11 |
[JAVA] 프로그래머스 - 옹알이(1) (0) | 2024.05.11 |