250x250
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
- FP 특징
- toggle-btn
- 자바스크립트 엔진 v8
- js배열 알고리즘
- Js module
- v8 원리
- chromatic error
- 함수형 프로그래밍 특징
- 웹팩 기본개념
- 코어자바스크립트
- 항해99 부트캠프
- 리액트 메모
- 항해99 사전스터디
- 리액트
- 항해99 미니프로젝트
- 테스트 코드 툴 비교
- 렌더링 최적화
- 항해99
- 알고리즘
- 웹 크롤링
- JS module system
- 타입스크립트
- 리덕스
- 리액트 렌더링 최적화
- 실행컨텍스트
- gql restapi 차이
- jwt
- next js
- this
- 리액트 메모이제이션
Archives
- Today
- Total
Jaeilit
백준 ATM 11399 js 본문
728x90
내 코드
const fs = require("fs");
const filePath =
process.platform === "linux" ? "/dev/stdin" : "./준/누적합/11399/input.txt";
const input = require("fs")
.readFileSync(filePath)
.toString()
.trim()
.split("\n");
const N = input.shift();
const time = input.map((e) => e.split(" ").map(Number)).flat();
// [[1, 3], [2, 1], [3, 4], [4, 3], [5, 2]]
let arr = [];
time.forEach((e, i) => {
return arr.push([i + 1, e]);
});
arr.sort((a, b) => {
return a[1] - b[1];
});
console.log(arr);
// [[2, 1], [5, 2], [1, 3], [4, 3], [3, 4]];
let result = [];
let sum = 0;
arr.forEach((e, i) => {
result.push((sum += e[1]));
// console.log(result);
// [1, 3, 6, 9, 13];
});
let answer = result.reduce((acc, cur) => acc + cur);
console.log(answer);
// 32
코드 설명
인풋 3 1 4 3 2 이 순서를 사람 순서도 같이 배열로 만들었으면 좋겠다 생각했다.
time.forEach 로
[[1, 3], [2, 1], [3, 4], [4, 3], [5, 2]]
사람순서 / 시간 을 이중배열로 만들어줬고
시간 순서대로 정렬을 해서 최소 값을 만들어주면 된다고 생각했다.
[[2, 1], [5, 2], [1, 3], [4, 3], [3, 4]]
시간 순서대로 정렬을 해줬더니 문제에서 나온 순서와 동일 한 2 5 1 4 3 순서가 되었다.
이제 누적 합을 구해주면 된다고 생각했다.
[1, 3, 6, 9, 13];
사람들이 기다린 누적 시간이다.
이제 이걸 모두 더해주면 된다고 생각했다.
32
다른사람 코드
const arr = tc.split(' ').map(Number).sort((a, b) => a - b);
let time = 0;
let result = 0;
for(let el of arr) {
time += el;
result += time;
}
console.log(result);
다른 사람은 어떻게 풀었는가 봤는데
사람을 같이 나열하는게 아니라 그냥 1 2 3 4 5 를 누적합으로 풀었다.
좀 당황스러웠다..
728x90
'알고리즘' 카테고리의 다른 글
귤 고르기 js (0) | 2023.05.25 |
---|---|
백준 스택수열 1874 js (0) | 2022.10.25 |
백준 구간 합 구하기 4 11659 js (0) | 2022.10.19 |
백준 좌표압축 18870 js (0) | 2022.10.17 |
백준 1181 단어 정렬 js (0) | 2022.10.13 |