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
- 오블완
- DP
- Lv. 0
- Lv. 1
- 깊이 우선 탐색
- dfs
- softeer
- Python
- LEVEL 2
- Dynamic Programming
- 소프티어
- SQL 고득점 KIT
- 자바스크립트
- select
- Java
- group by
- programmers
- level 3
- C언어
- 프로그래머스
- 파이썬
- Lv. 2
- 너비 우선 탐색
- SQL
- bfs
- 동적계획법
- Lv. 3
- 티스토리챌린지
- javascript
- join
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
Softeer [Level 3] [한양대 HCPC 2023] Pipelined {언어 : JavaScript} 본문
문제 링크
https://softeer.ai/practice/9496
정답 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const inputData = [];
rl.on('line', (line) => {
inputData.push(line.split(" ").map((e) => Number(e)));
}).on('close', () => {
const n = inputData[0][0];
const processes = inputData[1];
// 오름차순 정렬
processes.sort((a, b) => a - b);
const answer = processes[n-1] + n - 1;
console.log(answer);
process.exit(0);
});
풀이 방법
- 단순하게 처음 진입하는 i번째의 자동차는 단순하게 1/si이다.
- 예를들어 n이 5이고 자동차가 각각 [20, 1, 50, 10000]인 경우
- 처음 시작하는 차의 process 구간은 각각 0이상 1/20이하, 0이상 1이하, 0이상 1/50이하, 0이상 1/10000이하이다.
- 따라서 처음 시작할 때 겹치지 않게 배치하면 결국 마지막까지 겹치지 않는다.
- 겹치지 않게 하기 위해서 오름차순 정렬을 해주고 (사실 이미 정렬 되어 있을 수 있다.)
- 가장 시간이 오래 걸리는 processes의 n-1번째 인덱스의 값과 n번 겹치지 않게 했으므로 n을 더해주고 -1을 빼주면 끝!
- -1을 하는 이유는 processes는 시작하자마자 1초를 사용했기 때문이다. (중복)
느낀점
- 어떤 알고리즘을 사용했다고 말하기 어렵다.
'알고리즘' 카테고리의 다른 글
Softeer [Level 2] 나무 공격 {언어 : JavaScript} (2) | 2024.11.08 |
---|---|
프로그래머스 [Lv. 2] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지 {언어 : Python} (0) | 2024.09.27 |
프로그래머스 [Lv. 1] [PCCP 기출문제] 1번 / 동영상 재생기 {언어 : JavaScript} (1) | 2024.09.26 |
프로그래머스 [Lv. 3] 표 병합 {언어 : Python} (0) | 2024.08.06 |
프로그래머스 [Lv. 3] 순위 {언어 : Python} (0) | 2024.07.08 |