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

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

πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2021. 8. 12. 23:35

 

 

Algorithm

-  지λŠ₯ν˜• κΈ°μ°¨ -

 


 

문제

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

  λ‚΄λ¦° μ‚¬λžŒ 수 탄 μ‚¬λžŒ 수
1λ²ˆμ—­(μΆœλ°œμ—­) 0 32
2λ²ˆμ—­ 3 13
3λ²ˆμ—­ 28 25
4λ²ˆμ—­(μ’…μ°©μ—­) 39 0

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

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

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

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

 

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

 

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

 

문제 ν’€κΈ°

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n")
	.map((el) => el.split(" ").map((el) => Number(el)));

let result = [];

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

console.log(Math.max(...result));

 

 

 

λ°˜μ‘ν˜•