https://school.programmers.co.kr/learn/courses/30/lessons/12911
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 풀이
레벨2에 들어와서 유독 진법변환 문제를 많이 푸는 듯~ 덕분에 진법 변환하는 건 완전히 익혔다
이 문제는 내가 이제까지 익힌 것들을 모두 총정리하는 느낌이었다
1. toString(2) 으로 이진법으로 표현할 수 있음
2. 문자열을 spread 문법으로 펼치면 배열 만들 수 있음
3. filter()는 배열 각 요소에 대하여 주어진 함수의 결과값이 true인 모든 요소 모아서 새 배열 반환-> 여기에 length 붙이면 그 반환되는 배열 길이, 즉 1의 개수
대충 이렇게고~ 다른 문제와 다르게 같은 기능을 하는 코드가 있어서 함수로 묶어보았다
잘하고 있는 고겠지 화이팅😁
2) 최종 소스코드
function solution(n) {
function transN(k){
return [...k.toString(2)].filter(v=>v==="1").length;
}
const count =transN(n);
let nextCount=0;
while(nextCount!==count){
++n;
nextCount=transN(n);
}
return n;
}
728x90
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JavaScript] 카펫 (0) | 2022.11.16 |
---|---|
[프로그래머스/JavaScript] H-Index (0) | 2022.11.13 |
[프로그래머스/JavaScript] 이진 변환 반복하기 (0) | 2022.11.07 |
[프로그래머스/JavaScript] 피보나치 수 (0) | 2022.11.04 |
[프로그래머스/JavaScript] 3진법 뒤집기 (0) | 2022.11.03 |