๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/Algorithm

[๋ฐฑ์ค€][Node.js] 1267๋ฒˆ : ํ•ธ๋“œํฐ ์š”๊ธˆ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 6. 16.

 

 

 

Algorithm

-  ํ•ธ๋“œํฐ ์š”๊ธˆ -

 


 

๋ฌธ์ œ

๋™ํ˜ธ๋Š” ์ƒˆ์•…๋Œ€๋กœ T ํ†ต์‹ ์‚ฌ์˜ ์ƒˆ ํ•ธ๋“œํฐ ์˜ด๋จธ๋‚˜๋ฅผ ์ƒ€๋‹ค. ์ƒˆ์•…๋Œ€๋กœ T ํ†ต์‹ ์‚ฌ๋Š” ๋™ํ˜ธ์—๊ฒŒ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์š”๊ธˆ์ œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋ผ๊ณ  ํ–ˆ๋‹ค.

1. ์˜์‹ ์š”๊ธˆ์ œ

2. ๋ฏผ์‹ ์š”๊ธˆ์ œ

 

์˜์‹ ์š”๊ธˆ์ œ๋Š” 30์ดˆ๋งˆ๋‹ค 10์›์”ฉ ์ฒญ๊ตฌ๋œ๋‹ค. ์ด ๋ง์€ ๋งŒ์•ฝ 29์ดˆ ๋˜๋Š” ๊ทธ ๋ณด๋‹ค ์ ์€ ์‹œ๊ฐ„ ํ†ตํ™”๋ฅผ ํ–ˆ์œผ๋ฉด 10์›์ด ์ฒญ๊ตฌ๋œ๋‹ค. ๋งŒ์•ฝ 30์ดˆ๋ถ€ํ„ฐ 59์ดˆ ์‚ฌ์ด๋กœ ํ†ตํ™”๋ฅผ ํ–ˆ์œผ๋ฉด 20์›์ด ์ฒญ๊ตฌ๋œ๋‹ค.

 

๋ฏผ์‹ ์š”๊ธˆ์ œ๋Š” 60์ดˆ๋งˆ๋‹ค 15์›์”ฉ ์ฒญ๊ตฌ๋œ๋‹ค. ์ด ๋ง์€ ๋งŒ์•ฝ 59์ดˆ ๋˜๋Š” ๊ทธ ๋ณด๋‹ค ์ ์€ ์‹œ๊ฐ„ ํ†ตํ™”๋ฅผ ํ–ˆ์œผ๋ฉด 15์›์ด ์ฒญ๊ตฌ๋œ๋‹ค. ๋งŒ์•ฝ 60์ดˆ๋ถ€ํ„ฐ 119์ดˆ ์‚ฌ์ด๋กœ ํ†ตํ™”๋ฅผ ํ–ˆ์œผ๋ฉด 30์›์ด ์ฒญ๊ตฌ๋œ๋‹ค.

 

๋™ํ˜ธ๊ฐ€ ์ €๋ฒˆ ๋‹ฌ์— ์ƒˆ์•…๋Œ€๋กœ T ํ†ต์‹ ์‚ฌ๋ฅผ ์ด์šฉํ•  ๋•Œ ํ†ตํ™” ์‹œ๊ฐ„ ๋ชฉ๋ก์ด ์ฃผ์–ด์ง€๋ฉด ์–ด๋Š ์š”๊ธˆ์ œ๋ฅผ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ์ €๋ ดํ•œ์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

์ฒซ์งธ ์ค„์— ์‹ผ ์š”๊ธˆ์ œ์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ ํ›„์— ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์š”๊ธˆ์ด ๋ช‡ ์› ๋‚˜์˜ค๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ๋‘ ์š”๊ธˆ์ œ์˜ ์š”๊ธˆ์ด ๋ชจ๋‘ ๊ฐ™์œผ๋ฉด ์˜์‹์„ ๋จผ์ € ์“ฐ๊ณ  ๋ฏผ์‹์„ ๊ทธ ๋‹ค์Œ์— ์“ด๋‹ค.

 

์˜์‹์€ Y๋กœ, ๋ฏผ์‹์€ M์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๋ฌธ์ œ ํ’€๊ธฐ

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");
let call = input[1].split(" ").map((el) => Number(el));
let m = 0;
let y = 0;

for (let i = 0; i < call.length; i++) {
	y += call[i] % 30 === 0 ? (call[i] / 30 + 1) * 10 : Math.ceil(call[i] / 30) * 10;
	m += call[i] % 60 === 0 ? (call[i] / 60 + 1) * 15 : Math.ceil(call[i] / 60) * 15;
}

if (m === y) console.log("Y M " + m);
else if (m > y) console.log("Y " + y);
else console.log("M " + m);

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€