CodingTest/Programmers
[Programmers] 이진 변환 반복하기
창브로
2025. 5. 13. 19:23
[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[풀이 과정]
while문으로 반복하며 답이 1이나올때까지 반복합니다.
반복 내용은 문제와 같이 처음 문자에서 0을 빼고 자릿수를 2진법으로 바꾸는 것을 반복하면 됩니다.
[코드]
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
int countZero = 0;
int count = 0;
String number = "";
while(true) {
if(s.equals("1")) {
answer[0] = count;
answer[1] = countZero;
break;
}
char[] cArr = s.toCharArray();
// 0 빼기
for(int i = 0; i < cArr.length; i++) {
if(cArr[i] == '0') {
countZero++;
} else {
number += cArr[i];
}
}
// 자릿 수를 2진수로 변경
String n = Integer.toString(number.length(), 2);
count++;
// 수 초기화
number = "";
s = n;
}
return answer;
}
}
[회고]
쉬웠습니다.
질문과 피드백은 언제나 환영입니다.
감사합니다.