[프로그래머스] 이진 변환 반복하기 - JavaScript
프로그래머스 Level 2 - 이진 변환 반복하기
- 문제 분류 : 월간 코드 챌린지 시즌1
- 문제 출처 : 프로그래머스 Level 2 - 이진 변환 반복하기
📌 생각한 풀이 방법
- 연산 횟수를 count, 삭제된 0의 갯수를 deletedZeros에 저장한다.
- 해당 숫자의 0만 저장한 withZero와 1만 저장한 withoutZero로 분리한다.
- withZero만큼 deletedZeros를 증가시키고, withoutZero 값으로 다음 연산 값을 준비한다.
- 매 연산마다 count를 증가시키고, 1이 될때까지 해당 연산을 반복한다.
📌 풀이
function solution(s) {
let count = 0; // 연산 횟수
let deletedZeros = 0; // 삭제된 0의 갯수
while (s.length !== 1) {
// 1이 될때까지 해당 연산을 반복
s = s.split("").map((item) => +item);
let withZero = s.filter((number) => number === 0); // 0만 저장
let withoutZero = s.filter((number) => number === 1); // 1만 저장
deletedZeros += withZero.length; // withZero만큼 deletedZeros를 증가
s = withoutZero.length.toString(2); // withoutZero 값으로 다음 연산 값을 준비
count++; // 매 연산마다 count를 증가
}
return [count, deletedZeros];
}
Author And Source
이 문제에 관하여([프로그래머스] 이진 변환 반복하기 - JavaScript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tnehd1998/프로그래머스-이진-변환-반복하기-JavaScript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)