ALGORITHM/PROGRAMMERS
[프로그래머스] 이진 변환 반복하기
0298
2021. 7. 27. 22:38
https://programmers.co.kr/learn/courses/30/lessons/70129
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
2021-07-27
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Solution {
public int[] solution(String s) {
int count = 0;
int remove = 0;
while(!s.equals("1")) {
int tmp = s.length();
s = s.replaceAll("0", "");
remove += (tmp - s.length());
s = Integer.toBinaryString(s.length());
count++;
}
return new int[]{count, remove};
}
}
|
cs |
#문제풀이
1. tmp 에 현재 s 문자열의 길이를 저장한다.
2. "0"이 들어간 것을 s 문자열에서 모두 제거한다.
3. 제거된 0의 갯수(remove)에 "0" 제거 전 문자열의 길이와 "0" 제거 후 문자열의 길이 차를 누적시킨다.
4. 남은 s의 길이로 2진수를 만든다.
5. s가 1만 남을 때까지 반복하면서, 총 이진변환의 횟수를 count 해준다.
