https://www.acmicpc.net/problem/11399
// test.txt
5
3 1 4 3 2
sol1
제일 빠른 시간의 합은 돈을 인출하는데 걸리는 시간순으로 오름차순 정렬한 후 시간을 합해주면 된다.
팩토리얼로 계산하는 함수를 만들어보고 싶었는데 한참 고민해도 만들지 못해 결국 이중for문으로 해결하기로 한다..
let [n,...input] =require('fs').readFileSync('test.txt').toString().trim().split('\n');
let arr = input.map(v => v
.split(' ')
.map(Number)
.sort((a,b) => a-b)
);
let answer = 0;
for(let i=0;i<arr[0].length;i++) {
for(let j=0;j<=i;j++) {
answer += arr[0][j]
}
}
console.log(answer); //32
sol2
for문 대신 map() 메서드로도 해결 가능하다.
const [n,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n');
let arr = input[0].split(' ').map(Number).sort((a,b)=>a-b);
let sum = 0;
let answer =0;
arr.map(v=> {
sum += v;
answer += sum;
});
console.log(answer) //32
'Study > Algorithm' 카테고리의 다른 글
<BEAKJOON / node.js> 1181 단어정렬 (0) | 2022.05.29 |
---|---|
[BEAKJOON / node.js] 13305 주유소 (0) | 2022.05.28 |
[BEAKJOON / node.js] 1931 회의실 배정 (0) | 2022.05.24 |
<BEAKJOON / node.js> 11047 동전 0 (0) | 2022.05.22 |
<programmers / JavaScript> 로또의 최고 순위와 최저 순위 (0) | 2022.05.18 |