[프로그래머스] Lv. 2 이진 변환 반복하기(Java)
by rowing0328https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
정답 코드
class Solution {
public int[] solution(String s) {
int loop = 0;
int removed = 0;
while (!s.equals("1")) {
int zeros = countZeros(s);
loop += 1;
removed += zeros;
int ones = s.length() - zeros;
s = Integer.toString(ones, 2);
}
return new int[] {loop, removed};
}
private int countZeros(final String s) {
int zeros = 0;
for (char c : s.toCharArray()) {
if (c == '0') zeros++;
}
return zeros;
}
}
설명
- 검사하는 문자열이 "1"이 될 때까지 반복
- 문자열에 포함된 0의 개수 세기
- 0의 개수와 제거 횟수 누적
- 나머지 1의 개수를 사용해서 2진법으로 변환하여 1부터 반복
- 문자열에 포함된 0의 개수 세기
- 누적된 제거 횟수와 0의 개수를 배열로 반환
실행 결과
참고 자료 :
취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편 | 김현이
프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편 | 김현이 - 교보문고
프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편 | 핵심 개념, 프로그래머스에서 선별한 79개 문제 풀이, PCCP 대비까지! 합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드개
product.kyobobook.co.kr
'🏅Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] Lv. 2 모음사전(Java) (0) | 2025.02.16 |
---|---|
[프로그래머스] Lv. 2 쿼드압축 후 개수 세기(Java) (0) | 2025.02.10 |
[프로그래머스] Lv. 1 신규 아이디 추천(Java) (0) | 2025.02.03 |
[프로그래머스] Lv. 1 문자열 다루기 기본(Java) (2) | 2025.02.03 |
[프로그래머스] Lv. 1 숫자 문자열과 영단어(Java) (0) | 2025.02.03 |
블로그의 정보
코드의 여백
rowing0328