티스토리 뷰
728x90
[Input]
- d는 부서별로 신청한 금액이 들어있는 배열이며, 길이(전체 부서의 개수)는 1 이상 100 이하입니다.
- d의 각 원소는 부서별로 신청한 금액을 나타내며, 부서별 신청 금액은 1 이상 100,000 이하의 자연수입니다.
- budget은 예산을 나타내며, 1 이상 10,000,000 이하의 자연수입니다.
각 부서별로 신청한 금액을 작은 순으로 나열하여, 정해진 예산 안에서 가장 많은 부서에 지원하면 되겠다! 고 생각했다.
처음에는 sort를 바로 생각하지 못하고, for문을 돌려 가장 최소값을 찾아서 answer에 더해주고 d라는 신청 금액 배열에서 제외하여 다시 최소값을 찾는 비효율적인 방법을 생각했다.
그런데 sort 한번이면 for문 한 번으로 답을 찾을 수 있다.
이 때, d.sort() 로 sorting을 해버리면, 숫자의 대소를 비교하는 것이 아니라 문자의 유니코드를 기준으로 정렬하여 결과값이 틀리게 나온다. 그래서 우리는 숫자 오름차순으로 정렬하기 원하기 때문에 아래와 같은 sort function을 넣어준다.
[sort 기본 사용 방법]
// 오름차순
d.sort(function(a,b) {
return a-b;
});
// 내림차순
d.sort(function(a,b) {
return b-a;
});
// 객체 정렬하기
const arr = [
{name: 'banana', price: 3000},
{name: 'apple', price: 1000},
{name: 'orange', price: 500}
];
arr.sort(function(a, b) {
return a.price - b.price;
});
[내 코드]
function solution(d, budget) {
var answer = 0;
var isPossible = 0;
d.sort(function(a,b) {
return a-b;
});
for(var i=0 ; i<d.length ; i++) {
isPossible += d[i];
if(isPossible <= budget) {
answer++;
} else {
return answer;
}
}
return answer;
}
728x90
'programmers. Level1' 카테고리의 다른 글
javascript - 3진법 뒤집기 (0) | 2021.11.03 |
---|---|
javascript - 폰켓몬 (0) | 2021.11.03 |
javascript - 모의고사 (0) | 2021.11.01 |
javascript - 소수 만들기 (0) | 2021.10.28 |
javascript - 숫자 문자열과 영단어 (0) | 2021.10.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- reactjs
- 노마드코더
- TypeScript
- nomadcoder
- 소프티어
- 면접을 위한 CS 전공지식 노트
- level3
- CS
- 이것이 취업을 위한 코딩테스트다
- 기초
- html
- Hook
- 이진탐색
- React
- dfs
- css
- springboot
- 상태관리
- 프로그래머스
- React.FC
- 파이썬
- redux
- 자바스크립트
- CORS
- programmers
- JavaScript
- 이코테
- axios
- 이것이코딩테스트다
- level1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함