blues_log
Published 2023. 6. 29. 20:46
2023-06-29 (진법 다루기) TIL&WIL

알고리즘 문제를 풀다보면 진법과 관련된 문제를 자주 접한다.

예를 들어 10진법을 2진법으로 변경한다거나 ,, 바꾼 진법을 다시 10진법으로 바꾸는 문제가 있다.

오늘도 알고리즘 문제에서 진법과 관련된 문제를 접하게 되었다. 나는 이러한 문제를 해결할 때엔느 반복문을 활용해서 진법을 바꾸는 방법을 많이 사용했다.

 

그런데 더 효율적인 방법을 찾아보니 자바에서는 문자열과 정수를 진법에 따라 변환해주는 메서드가 있었다 !!

오늘 TIL은 이것에 대해서 정리하겠다.

 


문자열과 정수를 진법에 따라 변환하는 메서드

우선 10진수를 제외한 2진수, 3진수 등등은 모두 String으로 변환해야한다. int는 모두 10진수로 인식한다 !

Integer.ParseInt(String s, int radix) // radix 진법으로 숫자를 표현하는 문자열 s를 정수로 변환
Integer.toString(int v, int radix) // 정수 v를 radix 진법의 문자열로 변환
Long.parseLong(String s, int radix) // radix 진법으로 숫자를 표현하는 문자열 s를 정수로 변환
Long.toString(long v, int radix) // 정수 v를 radix 진법의 문자열로 변환

위와 같은 메서드를 사용하면 정말 간단하고 쉽게 진법을 변환할 수 있다.

 

예를 들어 정수 n을 3진법으로 변환하여 문자열로 변환하는 방법은 다음과 같다.

String s = Integer.toString(n, 3);

변환된 문자열을 다시 10진수로 바꾸는 방법은 다음과 같다.

int num = Integer.ParseInt(s, 3)

잘 기억해두고 있다가 알고리즘 문제에 해당 내용들이 나오면 잘 써먹어야겠다!