-
[프로그래머스] 이진 변환 반복하기ALGORITHM/PROGRAMMERS 2021. 7. 27. 22:38
https://programmers.co.kr/learn/courses/30/lessons/70129
2021-07-27
1234567891011121314class 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 해준다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 소수 찾기 (완전탐색) (0) 2021.07.28 [프로그래머스] 짝지어 제거하기 (2017 팁스타운) (0) 2021.07.28 [프로그래머스] 기능개발 (0) 2021.07.26 [프로그래머스] 올바른 괄호 (0) 2021.07.26 [프로그래머스] h-index (정렬) (0) 2021.07.26