반응형
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 |
Tags
- raect typescript #react #typescript #styled-component
- 코드스테이츠 #알고리즘 #그리디
- DP #c++
- 버블링 #갭쳐링 #이벤트 #JS
- npm #not being able to find a file #npm install Error
- React #controlled component #비제어 컴포넌트 #제어 컴포넌트
- axios
- 백준 #적록색약
- rate limit
- React #Hook rules #Hook 규칙
- react fragment
- RateLimit
- 백준 #직각삼각형
- React #리액트 이벤트 주기 #리액트 이벤트
- React-Query
- 노마드 코더 #타입스크립트 #typescript #class
- interceptors
- react #useCallback #react Hook
- react
- donwstream #upstream #origin
- 빡킹독
- #useRef #언제 쓰는데?
- JWT #토큰 #refreshToken #accessToken #Token #token #localStorage #sessionStorage
- React #effect hook #useEffect
- 플로이드 #c++
- 얕은 복사 #깊은 복사 #shallow copy #deep copy
- 다익스트라 #파티 #백준
- html entities
- useState #Hooks
- 이친수
Archives
- Today
- Total
꿈꾸는 개발자
다음 큰 숫자 본문
자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.
- 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.
- 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.
- 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다.
예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다.
자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요.
제한 사항- n은 1,000,000 이하의 자연수 입니다.
- 내가 작성한 코드
function solution(n) {
let ans = 0;
let num = n;
let numOfOne = func(n);
while (true) {
num++;
if (numOfOne === func(num)) {
ans = num;
break;
}
}
return ans;
}
function func(num) {
return num.toString(2).match(/1/g).length;
}
- 일단 일치하는 답을 찾을 때까지 계속 돌려야 하기 때문에 while(true)를 사용했다. 어찌됐건 "1"의 갯수가 일치하는 숫자는 나올거라는 생각에 이렇게 코드를 작성했지만, 뭔가 while(true)만을 해주었기 때문에 찝찝한 마음은 어쩔 수 없는 것 같다.
- func의 경우 JS의 경우 function 체이닝으로 한 번에 "1"의 갯수를 반환하고 싶어서....저렇게 작성했다. match내부에 "1"을 전체적으로?(g 에 해당) 찾는 정규식을 넣고 반환된 배열의 length를 반환했다. (1의 갯수를 찾을 수 있음)
- 다른 사람 풀이
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);
}
키야...내가 사용한 방법에 재귀까지 사용하니까 한 줄에 끝...! 너무 깔끔해 보인다. 반복문에 익숙해져서 주로 반복문만을 사용하는 데 재귀를 조금 더 적극적으로 활용해야겠다....!