프로그래머스 이진 변환 반복하기 java
2023. 1. 11. 12:58ㆍ코딩테스트/프로그래머스
문제
https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
0과 1로 이루어진 문자열이 있는데 x의 모든 0을 제거한 후 x의 길이를 다시 2진법으로 표현한 문자열을 바꾸는 과정을 x가 1이 될때까지 반복했을 때 이진 변환 횟수, 제거된 0의 개수를 구해야 한다.
3줄 요약
1. 이진수의 x의 0을 제거
2. 남은 x의 길이를 다시 이진수 x로 변환
3. 1, 2 과정을 x가 1이 될때까지 반복
나의 java 풀이
class Solution {
public int[] solution(String s) {
int[] answer;
int cnt = 0, countZero = 0;
//문자열 s가 1이 될때까지 반복
while(!s.equals("1")) {
int length = s.length();
// 0제거
s = s.replace("0", "");
// 이진변환 횟수
cnt++;
//0제거 횟수
countZero += length - s.length();
// s를 이진수로 변환
s = Integer.toBinaryString(s.length());
}
answer = new int[]{cnt, countZero};
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 영어 끝말잇기(java) (0) | 2023.01.19 |
|---|---|
| 프로그래머스 - 짝지어 제거하기(java) (2) | 2023.01.18 |
| 프로그래머스 다음 큰 숫자 java (0) | 2023.01.12 |
| 프로그래머스 피보나치 수 (0) | 2023.01.11 |
| 프로그래머스 숫자의 표현 java (0) | 2023.01.11 |