import java.util.Arrays;
public class 이진변환반복하기 {
public static int[] solution(String s) {
int[] answer = {0,0};
while (!s.equals("1")) {
int before = s.length();
s = s.replaceAll("0", "");
int after = s.length();
answer[1] += before - after; // 제거한 0의 개수
s = Integer.toBinaryString(after); // 이진변환
answer[0]++;
}
return answer;
}
public static void main(String[] args) {
System.out.println(Arrays.toString(solution("110010101001")));
System.out.println(Arrays.toString(solution("01110")));
System.out.println(Arrays.toString(solution("1111111")));
}
}
✏️ Java의 Integer 클래스는 정수값을 2,8,16진수 문자열로 변환하는 메서드를 제공한다
Integer.toBinaryString(int i)
int number = 10;
String binaryString = Integer.toBinaryString(number);
System.out.println(binaryString); // 출력: 1010
Integer.toOctalString(int i)
int number = 10;
String octalString = Integer.toOctalString(number);
System.out.println(octalString); // 출력: 12
Integer.toHexString(int i)
int number = 10;
String hexString = Integer.toHexString(number);
System.out.println(hexString); // 출력: a
✏️ n진수 => 10진수로 변환하기
//2진수 -> 10진수
int binary = Integer.parseInt("1010",2); // 출력: 10
//8진수 -> 10진수
int octal = Integer.parseInt("12", 8); // 출력: 10
//16진수 -> 10진수
int hexaDemical = Integer.parseInt("A", 16); // 출력: 10
refer to
반응형
'IT > Algorithm | Coding Test' 카테고리의 다른 글
[프로그래머스 12945] [Java] 피보나치 수 (0) | 2025.03.11 |
---|---|
[프로그래머스 12911] [Java] 다음 큰 숫자 (0) | 2025.03.01 |
[프로그래머스 12941] [Java] 최솟값 만들기 (0) | 2025.02.25 |
[프로그래머스 12951] [Java] JadenCase 문자열 만들기 (0) | 2025.02.25 |
[프로그래머스 12932] [Java] 자연수 뒤집어 배열로 만들기 (2) | 2025.01.19 |