κ°œμΈκ³΅λΆ€/Algorithm

[λ°±μ€€][Node.js] 2460번 : μ§€λŠ₯ν˜• κΈ°μ°¨ 2

πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2021. 8. 13. 22:58

 

 

Algorithm

-  μ§€λŠ₯ν˜• κΈ°μ°¨ 2 -

 


 

문제

μ΅œκ·Όμ— 개발된 μ§€λŠ₯ν˜• κΈ°μ°¨κ°€ 1λ²ˆμ—­(μΆœλ°œμ—­)λΆ€ν„° 10λ²ˆμ—­(μ’…μ°©μ—­)κΉŒμ§€ 10개의 정차역이 μžˆλŠ” λ…Έμ„ μ—μ„œ μš΄ν–‰λ˜κ³  μžˆλ‹€. 이 κΈ°μ°¨μ—λŠ” νƒ€κ±°λ‚˜ λ‚΄λ¦¬λŠ” μ‚¬λžŒ 수λ₯Ό μžλ™μœΌλ‘œ 인식할 수 μžˆλŠ” μž₯μΉ˜κ°€ μžˆλ‹€. 이 μž₯치λ₯Ό μ΄μš©ν•˜μ—¬ μΆœλ°œμ—­μ—μ„œ μ’…μ°©μ—­κΉŒμ§€ κ°€λŠ” 도쀑 κΈ°μ°¨ μ•ˆμ— μ‚¬λžŒμ΄ κ°€μž₯ λ§Žμ„ λ•Œμ˜ μ‚¬λžŒ 수λ₯Ό κ³„μ‚°ν•˜λ €κ³  ν•œλ‹€. 단, 이 κΈ°μ°¨λ₯Ό μ΄μš©ν•˜λŠ” μ‚¬λžŒλ“€μ€ μ§ˆμ„œ μ˜μ‹μ΄ νˆ¬μ² ν•˜μ—¬, μ—­μ—μ„œ 기차에 νƒˆ λ•Œ, 내릴 μ‚¬λžŒμ΄ λͺ¨λ‘ λ‚΄λ¦° 후에 기차에 탄닀고 κ°€μ •ν•œλ‹€.

  λ‚΄λ¦° μ‚¬λžŒ 수 탄 μ‚¬λžŒ 수
1λ²ˆμ—­(μΆœλ°œμ—­) 0 32
2λ²ˆμ—­ 3 13
3λ²ˆμ—­ 28 25
4λ²ˆμ—­ 17 5
5λ²ˆμ—­ 21 20
6λ²ˆμ—­ 11 0
7λ²ˆμ—­ 12 12
8λ²ˆμ—­ 4 2
9λ²ˆμ—­ 0 8
10λ²ˆμ—­(μ’…μ°©μ—­) 21 0

예λ₯Ό λ“€μ–΄, μœ„μ™€ 같은 경우λ₯Ό μ‚΄νŽ΄λ³΄μž. 이 경우, κΈ°μ°¨ μ•ˆμ— μ‚¬λžŒμ΄ κ°€μž₯ λ§Žμ€ λ•ŒλŠ” 2λ²ˆμ—­μ—μ„œ 3λͺ…μ˜ μ‚¬λžŒμ΄ κΈ°μ°¨μ—μ„œ 내리고, 13λͺ…μ˜ μ‚¬λžŒμ΄ 기차에 탔을 λ•Œλ‘œ, 총 42λͺ…μ˜ μ‚¬λžŒμ΄ κΈ°μ°¨ μ•ˆμ— μžˆλ‹€.

이 κΈ°μ°¨λŠ” λ‹€μŒ 쑰건을 λ§Œμ‘±ν•˜λ©΄μ„œ μš΄ν–‰λœλ‹€κ³  κ°€μ •ν•œλ‹€.

  1. κΈ°μ°¨λŠ” μ—­ 번호 μˆœμ„œλŒ€λ‘œ μš΄ν–‰ν•œλ‹€.
  2. μΆœλ°œμ—­μ—μ„œ λ‚΄λ¦° μ‚¬λžŒ μˆ˜μ™€ μ’…μ°©μ—­μ—μ„œ 탄 μ‚¬λžŒ μˆ˜λŠ” 0이닀.
  3. 각 μ—­μ—μ„œ ν˜„μž¬ 기차에 μžˆλŠ” μ‚¬λžŒλ³΄λ‹€ 더 λ§Žμ€ μ‚¬λžŒμ΄ λ‚΄λ¦¬λŠ” κ²½μš°λŠ” μ—†λ‹€.
  4. 기차의 정원은 μ΅œλŒ€ 10,000λͺ…이고, 정원을 μ΄ˆκ³Όν•˜μ—¬ νƒ€λŠ” κ²½μš°λŠ” μ—†λ‹€.

10개의 역에 λŒ€ν•΄ κΈ°μ°¨μ—μ„œ λ‚΄λ¦° μ‚¬λžŒ μˆ˜μ™€ 탄 μ‚¬λžŒ μˆ˜κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 기차에 μ‚¬λžŒμ΄ κ°€μž₯ λ§Žμ„ λ•Œμ˜ μ‚¬λžŒ 수λ₯Ό κ³„μ‚°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

각 μ—­μ—μ„œ λ‚΄λ¦° μ‚¬λžŒ μˆ˜μ™€ 탄 μ‚¬λžŒ μˆ˜κ°€ λΉˆμΉΈμ„ 사이에 두고 첫째 쀄뢀터 μ—΄ 번째 μ€„κΉŒμ§€ μ—­ μˆœμ„œλŒ€λ‘œ ν•œ 쀄에 ν•˜λ‚˜μ”© μ£Όμ–΄μ§„λ‹€.

 

μž…μΆœλ ₯ μ˜ˆμ‹œ

 

문제 ν’€κΈ°

const readline = require("readline");
const rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
	input.push(line.toString());
}).on("close", function () {
	input = input.map((el) => el.split(" ").map((el) => Number(el)));
    let people = [];
let inTrain = 0;

for (let i = 0; i < input.length; i++) {
	inTrain = inTrain - input[i][0] + input[i][1];
	people.push(inTrain);
}

console.log(Math.max(...people));
	process.exit();
});

 

 

λ°˜μ‘ν˜•