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 | 31 |
Tags
- 프로젝트캠프
- 스나이퍼팩토리
- React Query
- 웅진씽크빅
- React
- STATE
- 프론트엔드 개발
- 수코딩
- 상태 관리 라이브러리
- frontend
- 개발
- 공식문서
- Server State
- 프론트엔드
- tanstack query
- 유데미
- sucoding
- 리액트프로젝트
- TypeScript
Archives
- Today
- Total
yunicornlab
[Softeer] 소프티어 - 금고 털이 JavaScript (Level 2) 본문
반응형
자바스크립트로 Softeer의 금고 털이 라는 문제 풀기!
https://softeer.ai/practice/6288
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
const fs = require('fs');
let [numbers, ...input] = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n');
let [max_weight, n] = numbers.split(' ').map(Number);
let line = input.map(v => v.split(' ').map(Number)).sort((a, b) => b[1] - a[1])
let weight = 0;
let price = 0;
for (let metal of line) {
let assign = weight + metal[0] <= max_weight ? metal[0] : max_weight - weight;
weight += assign;
price += assign * metal[1]
if (weight === max_weight) break;
}
console.log(price)
가격을 위주로 2차원 배열을 정렬하고 더해가며 출력
let i = 0;
let price = 0;
while (max_weight >= 0 && i < line.length) {
let metal_weight = line[i][0];
let metal_price = line[i][1];
if (max_weight >= metal_weight) {
max_weight -= metal_weight;
price += metal_weight * metal_price
} else {
price += max_weight * metal_price;
max_weight = 0;
}
i++;
}
console.log(price)
이 방법도 통과는 했지만 실행 시간이 조금 더 걸린다.
반응형
'Coding Test > Practice' 카테고리의 다른 글
[Softeer] 소프티어 - 8단 변속기 JavaScript (Level 2) (0) | 2024.06.29 |
---|---|
[Softeer] 소프티어 - 바이러스 JavaScript (Level 2) (0) | 2024.06.29 |
[Softeer] 소프티어 - 연탄의 크기 JavaScript (Level 2) (0) | 2024.06.29 |
[Softeer] 소프티어 - [한양대 HCPC 2023] X marks the Spot JavaScript (Level 2) (0) | 2024.06.29 |
[Softeer] 소프티어 - A + B JavaScript (Level 1) (0) | 2024.06.29 |