https://school.programmers.co.kr/learn/courses/30/lessons/12911

function solution(n) {
let m = n
let n = [...n.toString(2)].reduce((a,c) => parseInt(a) + parseInt(c))
while (true) {
m += 1
if (n === [...m.toString(2)].reduce((a,c) => parseInt(a) + parseInt(c))) {
return m;
break
}
}
}
다른사람 풀이
function solution(n,a=n+1) {
return n.toString(2).match(/1/g).length == a.toString(2).match(/1/g).length ? a : solution(n,a+1);
}
재귀방식
match가 파이썬에서 count함수와 비슷한 함수인가보다.
근데 match는 찾아서 배열으로 반환하는듯? 그래서 length를 이용해서 길이가 같은지 확인하면 되는 것 같다.
그리고 정규표현식을 이용하였다.. 안에 특정문자를 찾아서 모두 반환하고 싶을 때, //g형식 사용하면 되는 거 기억해두자.
(만약 영단어를 찾을 때 대소문자 구별하지 않고 모두 찾고 싶으면 //gi형식으로 찾으면 된다)

이런식으로 반환된다
| [자바스크립트/javascript] 프로그래머스 : 짝지어 제거하기 (Lv.2) (스택) (0) | 2023.03.27 |
|---|---|
| [자바스크립트/javascript] 프로그래머스 : 피보나치 수 (Lv.2) (0) | 2023.03.27 |
| [자바스크립트/javascript] 프로그래머스 : 약수의 합 (Lv.1) (0) | 2023.03.24 |
| [자바스크립트/javascript] 프로그래머스 : 없는 숫자 더하기 (Lv.1) (0) | 2023.03.15 |
| [자바스크립트/javascript] 프로그래머스 : 3진법 뒤집기 (Lv.0) (0) | 2023.03.05 |