반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- Javascript sort
- mysql스키마
- JavaScript
- 오블완
- 프로그래머스 신규아이디추천
- 깃허브
- 프로그래머스 자바스크립트
- 자바스크립트 알고리즘
- js 알고리즘
- 키패드누르기풀이
- 정규표현식문제
- 티스토리챌린지
- 프로그래머스 자바스크립트 풀이
- 맨해튼거리
- TypeScript
- 타입스크립트
- MySQL
- 알고리즘
- 자바스크립트 배열
- 프로그래머스
- 정렬 알고리즘
- binary search
- 자료구조
- 맨해튼거리예제
- 자바스크립트 정렬
- next.js
- Javascript 정렬
- 좌표거리구하기
- node.js
- TS
Archives
- Today
- Total
FE PARADISE
프로그래머스 이진 변환 반복하기 - 자바스크립트 풀이 본문
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
첫번째 코드
이진수로 변환하는 함수를 구현한 후 해당 함수를 이용하여 0의 개수와 이진 변환 횟수를 구한다.
function binary(num){ // 이진 변환 함수
let bin = [];
while(num >= 0){
if(num <= 1) {bin.unshift(num); break;}
bin.unshift(num % 2);
num = parseInt(num / 2);
}
return bin.join("");
}
function solution(s) {
let answer = [0,0];
while(s !== "1"){
answer[1] += Array.from(s).filter(x => x === "0").length;
s = binary(s.replaceAll("0","").length);
answer[0] += 1;
}
return answer;
}
두번째 개선 코드
toString(2)를 활용하여 간단하게 이진수로 변환해주는 방식을 채택했다.
function solution(s) {
let answer = [0,0];
while(s !== "1"){
answer[0] += 1;
answer[1] += [...s].filter(x => x === "0").length;
s = s.replaceAll("0", "").length.toString(2);
}
return answer;
}
두 방식 모두 문제의 s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 조건에 따라 while문 조건을 설정하였다.
while(s !== "1")
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
프로그래머스 짝지어 제거하기 - 자바스크립트 풀이 (0) | 2024.12.01 |
---|---|
프로그래머스 숫자의 표현 - 자바스크립트 풀이 (0) | 2024.11.27 |
프로그래머스 JadenCase 문자열 만들기 - 자바스크립트 풀이 (0) | 2024.11.24 |
프로그래머스 최솟값 만들기 - 자바스크립트 코드 (0) | 2024.11.24 |
프로그래머스 로또의 최고 순위와 최저 순위 - 자바스크립트 풀이 (0) | 2024.11.24 |