유리의 개발새발
[Algorithms] 다음 큰 숫자 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12911
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
아...
문제를 보는 순간 작년 생각이 났다.
모 대기업의 코테에 2진수 가지고 별 짓거리 다 하던...
“2진수 만들어서 뭐 하면 되나?”
라고 생각하는 순간 우리는 코테 탈락입니다.
그냥 2진수로 바꿔서 1의 개수만 세면 된다.
우선 이진수 구하는 방식은 2로 나눈 나머지를 역순으로 쭉 이어붙이면 된다.
하.지.만 여기서는 이진수로 만들라는게 아니다!
대게, 진짜 다 2진수로 변환해서 비교하면 시간 복잡도가 아작이 납니다.
toString() 아시죠?
여기에는 radix로 몇 진수로 표현할지 옵셔널로 정할 수 있습니다.
이걸 몰라서 2진수 문제만 Swift로 풀었었다..............................아
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
핵심은 : 2진수로 만들기 - 1의 개수 세기 - n보다 큰 수 중 찾기
function solution(n) {
const countOnes = x => x.toString(2).split('0').join('').length;
const target = countOnes(n);
let answer = n + 1;
while (0.1 + 0.2 !== 0.3) {
if (countOnes(answer) === target) return answer;
answer++;
}
}
이러면 끝!
반응형
'Algorithms' 카테고리의 다른 글
| [Algorithms] 기능개발 (4) | 2025.07.10 |
|---|---|
| [Algorithms] 피보나치수 (2) | 2025.07.03 |
| [Algorithms] 숫자의 표현 (1) | 2025.07.02 |
| [Algorithms] 할인 행사 (2) | 2024.10.24 |
| [Algorithms] 그래프란? (2) | 2024.10.19 |