하루에 한 문제
[프로그래머스 월간 코드 챌린지 시즌1]이진 변환 반복하기 본문
https://programmers.co.kr/learn/courses/30/lessons/70129
class Solution {
public int[] solution(String s) {
int len=0, cnt=0, remove=0;
while(true) {
if(s.length()==1) break;
cnt++;
len=s.length();
s=s.replace("0", ""); // 0다지우기
remove+=len-s.length(); // x의 모든 0을 제거할때 0제거한 갯수
s=Integer.toBinaryString(s.length());
}
int[] answer = {cnt, remove};
return answer;
}
}
소요시간 : 10분
쉬운 문제입니다.
로직을 살펴보면
1. s의 길이를 구해준다.
2. s에서 0을 다 지워준다
3. s의 길이가 변한 만큼 remove에 더해준다.
4. s의 길이를 2진수로 바꿔서 다시 s에 넣어준다.
를 반복하다가 s의 길이가 1이 되면 종료하면 됩니다!
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 행렬의 곱셈 -Java (1) | 2021.01.23 |
---|---|
[프로그래머스] 올바른 괄호 -Java (1) | 2021.01.22 |
[프로그래머스 2020카카오 인턴쉽] 수식 최대화 -Java (0) | 2021.01.21 |
[프로그래머스] 숫자의 표현 -Java (2) | 2021.01.19 |
[프로그래머스] 기능개발 -Java (1) | 2021.01.18 |
Comments