https://programmers.co.kr/learn/courses/30/lessons/70129
문제 파악
1. 0과 1로 이루어진 문자열의 모든 0을 제거한다.
2. 0을 제거한 문자의 길이를 다시 2진법으로 표현한다.
3. 다시 위의 과정을 문자열이 "1"이 될 때까지 반복한다.
더보기
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
int zerocnt = 0;
int cycle = 0;
StringBuilder sb;
while(!s.equals("1"))
{
sb = new StringBuilder();
for(int idx = 0; idx<s.length();idx++)
{
if(s.charAt(idx) == '1'){
sb.append("1");
}
else{
zerocnt++;
}
}
cycle++;
s = Integer.toBinaryString(sb.length());
}
answer[0] = cycle;
answer[1] = zerocnt;
return answer;
}
}
이 문제에서 고려해야 될 점은...음.. 메모리와 속도 관련 정도인 것 같다
'PS' 카테고리의 다른 글
[Programmers] LV2 - 캐시 (0) | 2021.06.27 |
---|---|
[Programmers] LV2 - 큰 수 만들기 (0) | 2021.06.26 |
[Programmers]LV2 - 뉴스 클러스터링 (0) | 2021.06.26 |
[Programmers] LV2 - 스킬 트리 (0) | 2021.06.25 |
[BOJ] 1022번: 소용돌이 예쁘게 출력하기 (0) | 2021.06.23 |