일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Programmers
- 배열
- SQL
- 정규표현식
- 프로그래머스
- JavaScript
- for문
- 코드스테이츠
- Where
- 개발자_조이킴
- 알고리즘
- 최강의 인생
- Algorithms
- 개발자의 책장
- Hackerrank
- select
- 재귀함수
- array.push()
- join
- MySQL
- 블록체인
- 코딩공부
- array.slice()
- node.js
- 자바스크립트
- Developer_JoyKim
- 코딩테스트
- 역행자
- 코플릿
- array
Archives
- Today
- Total
CodingSpace
프로그래머스#48(Lv.1)_예산 본문
예산
다른 분들이 하신것 보고 배우고 또 배우자! (비트 연산자!)
※ 표현식과 연산자 MDN
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Expressions_and_Operators
표현식과 연산자 - JavaScript | MDN
이 장은 JavaScript의 표현식과 할당, 비교, 산술, 비트 계산, 논리, 문자열, 삼항 등 여러 가지 연산자를 설명합니다.
developer.mozilla.org
비트 NOT (~) 연산자:
비트 NOT 연산자를 사용하면 32개의 비트를 모두 반전합니다.
가장 큰 (맨 왼쪽) 비트가 1이면 음수를 나타냅니다.
따라서 ~x는 -x-1과 같은 값으로 평가됩니다.
~15 => -15-1 = -16
포기하지말고 계속해서 공부하자!
화이팅:)
// 프로그래머스 - 예산 function solution(d, budget) { // d를 오름차순으로 정렬 d.sort((a, b) => a - b) let result = 0 // budget이 0이 되거나, 음수가 되면 while문을 빠져나온다. // 혹은, d의 length가 0이면 while문을 빠져나온다. while(budget !== 0 && budget > 0 && d.length !== 0) { let head = d.shift() // head가 budget보다 작거나 같다면 if(head <= budget) { // result는 +1 result++ // budget를 head만큼 뺀다 budget = budget - head } } // budget이 음수이면 result-1를 return // 그외의 case는 result를 return return budget < 0 ? result - 1 : result } |
<다른분의 solution>
![]() ![]() 이 코드는 비트연산자 때문에 이해하기 어렵다! |
'프로그래머스 > Level1' 카테고리의 다른 글
프로그래머스#50(Lv.1)_모의고사 (0) | 2021.11.04 |
---|---|
프로그래머스#49(Lv.1)_체육복 (0) | 2021.11.03 |
프로그래머스#47(Lv.1)_음양 더하기 (0) | 2021.11.03 |
프로그래머스#46(Lv.1)_소수 만들기 (0) | 2021.10.31 |
프로그래머스#45(Lv.1)_완주하지 못한 선수 (0) | 2021.10.28 |
Comments