[๋ฐฑ์ค€] 20546 ๐Ÿœ ๊ธฐ์ ์˜ ๋งค๋งค๋ฒ• ๐Ÿœ JavaScript

ํ˜…ยท2024๋…„ 6์›” 5์ผ

๋ฌธ์ œ

"์˜ค๋Š˜๋„ ํ˜ธ์žฌ๋งŒ ์žˆ๊ฒŒ ํ•ด์ฃผ์„ธ์š”. ๋ฒ„ํ•-"

2๋…„์ฐจ ๊ฐœ๋ฏธ ์ค€ํ˜„์ด๋Š” ์˜ค๋Š˜๋„ ๋ฒ„ํ•์‹ ์—๊ฒŒ ๊ธฐ๋„๋ฅผ ์˜ฌ๋ฆฐ๋‹ค. ์žฅ๊ธฐ ํˆฌ์ž๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ์ค€ํ˜„์ด๋Š” ํ•œ ๋ฒˆ ์‚ฐ ์ฃผ์‹์€ ์ ˆ๋Œ€ ํŒ”์ง€ ์•Š๋Š”๋‹ค. 2099๋…„์ด ๋˜์–ด๋„ ์ฃผ์‹์„ ํŒ”์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์ฃผ์‹ ๋งค์ˆ˜ ํ›„ ์˜ค๋กœ์ง€ ๊ธฐ๋„๋งŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ BNP ์ „๋žต์ด๋ผ๊ณ  ํ•œ๋‹ค. BNP๋Š” Buy and Pray์˜ ์•ฝ์ž์ด๋‹ค. ์ค€ํ˜„์ด๋Š” ์ฃผ์‹์„ ์‚ด ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ฌด์กฐ๊ฑด ์ตœ๋Œ€ํ•œ ๋งŽ์ด ์‚ฐ๋‹ค. ์ค€ํ˜„์ด๋Š” ์š•์‹ฌ์Ÿ์ด์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ฃผ์‹์„ ์‚ด ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•œ ๋งŒํผ ์ฆ‰์‹œ ๋งค์ˆ˜ํ•œ๋‹ค. ๋‹ค์Œ์€ ์ค€ํ˜„์ด๊ฐ€ ํ˜„๊ธˆ 100์›์œผ๋กœ A๊ธฐ์—…์˜ ์ฃผ์‹์„ ์‚ฌ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

"์ฃผ์‹์€ ํƒ€์ด๋ฐ์ด์ง€!"

๋ฐ˜๋ฉด, ์„ฑ๋ฏผ์ด๋Š” ์˜ค๋Š˜๋„ ์ฃผ์‹ ๊ฑฐ๋ž˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค. ๋ชจ๋‹ˆํ„ฐ 8๊ฐœ์—์„œ ๋ฟœ์–ด์ ธ ๋‚˜์˜ค๋Š” ํ™”๋ คํ•œ ์ฃผ์‹ ์ฐจํŠธ๊ฐ€ ์„ฑ๋ฏผ์ด๋ฅผ ๊ฐ์‹ผ๋‹ค. ์„ฑ๋ฏผ์ด๋Š” ์ฃผ์‹์ด ํƒ€์ด๋ฐ ์‹ธ์›€์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค. ์ „ํ˜•์ ์ธ ๋‹จ๊ธฐ ํˆฌ์ž์ž๋กœ ์ƒ๊ฐํ•˜๋ฉด ์˜ค์‚ฐ์ด๋‹ค. ์„ฑ๋ฏผ์ด๋งŒ์˜ ์ „๋žต์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ฅธ๋ฐ” 33 ๋งค๋งค๋ฒ•์œผ๋กœ, ๊ทธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ์˜ ์„ธ ๊ฐ€์ง€ ๋ฃฐ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

  1. ๋ชจ๋“  ๊ฑฐ๋ž˜๋Š” ์ „๋Ÿ‰ ๋งค์ˆ˜์™€ ์ „๋Ÿ‰ ๋งค๋„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ˜„๊ธˆ์ด 100์›์ด๊ณ  ์ฃผ๊ฐ€๊ฐ€ 11์›์ด๋ผ๋ฉด 99์›์–ด์น˜์˜ ์ฃผ์‹์„ ๋งค์ˆ˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹จ, ํ˜„๊ธˆ์ด 100์› ์žˆ๊ณ  ์ฃผ๊ฐ€๊ฐ€ 101์›์ด๋ผ๋ฉด ์ฃผ์‹์„ ์‚ด ์ˆ˜ ์—†๋‹ค. ์„ฑ๋ฏผ์ด๋Š” ๋นš์„ ๋‚ด์„œ ์ฃผ์‹์„ ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.
  2. 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ์ด ์ „์ผ ๋Œ€๋น„ ์ƒ์Šนํ•˜๋Š” ์ฃผ์‹์€ ๋‹ค์Œ๋‚  ๋ฌด์กฐ๊ฑด ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์†Œ์œ ํ•œ ์ฃผ์‹์˜ ๊ฐ€๊ฒฉ์ด 3์ผ์งธ ์ƒ์Šนํ•œ๋‹ค๋ฉด, ์ „๋Ÿ‰ ๋งค๋„ํ•œ๋‹ค. ์ „์ผ๊ณผ ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€๊ฐ€ ๋™์ผํ•˜๋‹ค๋ฉด ๊ฐ€๊ฒฉ์ด ์ƒ์Šนํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
  3. 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ์ด ์ „์ผ ๋Œ€๋น„ ํ•˜๋ฝํ•˜๋Š” ์ฃผ์‹์€ ๋‹ค์Œ๋‚  ๋ฌด์กฐ๊ฑด ๊ฐ€๊ฒฉ์ด ์ƒ์Šนํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๊ฒฝํ–ฅ์ด ๋‚˜ํƒ€๋‚˜๋ฉด ์ฆ‰์‹œ ์ฃผ์‹์„ ์ „๋Ÿ‰ ๋งค์ˆ˜ํ•œ๋‹ค. ์ „์ผ๊ณผ ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€๊ฐ€ ๋™์ผํ•˜๋‹ค๋ฉด ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
    ์ค€ํ˜„์ด์™€ ์„ฑ๋ฏผ์ด๋Š” ๊ฐ์ž์˜ ๋งค๋งค๋ฒ• ์ค‘ ์–ด๋–ค ๋ฐฉ๋ฒ•์ด ๋” ์ˆ˜์ต๋ฅ ์ด ๋†’์€์ง€ ๊ฒจ๋ค„๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์˜ค๋กœ์ง€ MachineDuck์ด๋ผ๋Š” ๊ธฐ์—…์˜ ์ฃผ์‹๋งŒ ๊ฑฐ๋ž˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‚ด๊ธฐ ๊ธฐ๊ฐ„์€ 2021๋…„ 1์›” 1์ผ๋ถ€ํ„ฐ 2021๋…„ 1์›” 14์ผ๊นŒ์ง€์ด๋‹ค. ์ค€ํ˜„์ด์™€ ์„ฑ๋ฏผ์ด์—๊ฒŒ ์ฃผ์–ด์ง„ ํ˜„๊ธˆ์€ ๋™์ผํ•˜๋‹ค. ์„ธ๊ธฐ์˜ ๋Œ€๊ฒฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธฐ๊ฐ„์—๋Š” ๋งค์ผ ์ฃผ์‹ ๊ฑฐ๋ž˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. 2021๋…„ 1์›” 14์ผ์— ๋” ๋งŽ์€ ์ž์‚ฐ์„ ๋ณด์œ ํ•œ ์‚ฌ๋žŒ์ด ์Šน๋ฆฌํ•œ๋‹ค. 1์›” 14์ผ์˜ ์ž์‚ฐ์€ (ํ˜„๊ธˆ + 1์›” 14์ผ์˜ ์ฃผ๊ฐ€ ร— ์ฃผ์‹ ์ˆ˜)๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” 2021๋…„ 1์›” 1์ผ๋ถ€ํ„ฐ 2021๋…„ 1์›” 14์ผ๊นŒ์ง€์˜ ์ฃผ์‹ ๊ฐ€๊ฒฉ์„ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ๋‹ค. ์ค€ํ˜„์ด์™€ ์„ฑ๋ฏผ์ด ์ค‘ ๋ˆ„๊ฐ€ ๋” ๋†’์€ ์ˆ˜์ต๋ฅ ์„ ๋‚ผ์ง€ ๋งžํ˜€๋ณด์ž!

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ค€ํ˜„์ด์™€ ์„ฑ๋ฏผ์ด์—๊ฒŒ ์ฃผ์–ด์ง„ ํ˜„๊ธˆ์ด ์ฃผ์–ด์ง„๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์— 2021๋…„ 1์›” 1์ผ๋ถ€ํ„ฐ 2021๋…„ 1์›” 14์ผ๊นŒ์ง€์˜ MachineDuck ์ฃผ๊ฐ€๊ฐ€ ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ์ž…๋ ฅ์€ 1000 ์ดํ•˜์˜ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

1์›” 14์ผ ๊ธฐ์ค€ ์ค€ํ˜„์ด์˜ ์ž์‚ฐ์ด ๋” ํฌ๋‹ค๋ฉด "BNP"๋ฅผ, ์„ฑ๋ฏผ์ด์˜ ์ž์‚ฐ์ด ๋” ํฌ๋‹ค๋ฉด "TIMING"์„ ์ถœ๋ ฅํ•œ๋‹ค.

๋‘˜์˜ ์ž์‚ฐ์ด ๊ฐ™๋‹ค๋ฉด "SAMESAME"์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋ชจ๋“  ๊ฒฐ๊ณผ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ

100
10 20 23 34 55 30 22 19 12 45 23 44 34 38

์˜ˆ์ œ ์ถœ๋ ฅ

BNP

๋‚ด๊ฐ€ ํ–ˆ๋˜ ํ’€์ด ๋ฐฉ๋ฒ•

  1. SM, JH์— ์ž…๋ ฅ๋ฐ›์€ ํ˜„๊ธˆ์„ ์ €์žฅํ•œ๋‹ค. SM_stock, JH_stock์—๋Š” ๊ฐ์ž๊ฐ€ ๊ฐ€์‹  ์ฃผ์‹ ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ดˆ๊นƒ๊ฐ’์€ 0์œผ๋กœ ํ•œ๋‹ค.
  2. up, down์€ ๊ฐ€๊ฒฉ์ด ์—ฐ์†ํ•ด์„œ ์˜ฌ๋ผ๊ฐ€๊ฑฐ๋‚˜ ๋‚ด๋ ค๊ฐ„ ๋‚  ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด up์ด 1์ด๋ฉด, 1์ผ ์—ฐ์† ์˜ฌ๋ผ๊ฐ”์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ๋‘ ์ˆ˜๊ฐ€ ๋™์‹œ์— 1์ด์ƒ์ผ ์ˆ˜ ์—†๋‹ค.
  3. 1์ผ๋ถ€ํ„ฐ 13์ผ๊นŒ์ง€ ์ฃผ๊ฐ€๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ณ„์‚ฐํ•œ๋‹ค. ๋จผ์ € ์ค€ํ˜„์ด๊ฐ€ ๊ฐ€์ง„ ํ˜„๊ธˆ์ด ์˜ค๋Š˜ ์ฃผ๊ฐ€ ์ด์ƒ์ผ ๊ฒฝ์šฐ, ์‚ด ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ์‚ฐ๋‹ค. stock์—๋Š” ํ˜„๊ธˆ์—์„œ ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’์„ ์†Œ์ˆ˜์  ๋‚ด๋ฆผํ•˜์—ฌ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , ์ค€ํ˜„์ด์˜ ํ˜„๊ธˆ์„ ๋งค์ˆ˜ํ•œ ์ฃผ๊ฐ€ ์ˆ˜ ร— ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€๋ฅผ ํ•œ ๊ฐ’๋งŒํผ ๋นผ์ค€๋‹ค. ์ „๋‚  ๋Œ€๋น„ ๊ฐ€๊ฒฉ์ด ์˜ฌ๋ž๊ฑฐ๋‚˜ ๋‚ด๋ ค๊ฐ”์„ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ +1ํ•ด์ฃผ๊ณ , ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  4. up์ด 3 ์ด์ƒ์ผ ๋•Œ, ์„ฑ๋ฏผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์‹์„ ์ „๋ถ€ ๋งค๋„ํ•œ๋‹ค. ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€ ร— ์ฃผ์‹ ์ˆ˜๋ฅผ ํ•œ ๊ฐ’์„ ์„ฑ๋ฏผ์ด์˜ ํ˜„๊ธˆ์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , ์ฃผ๊ฐ€ ์ˆ˜๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. down์ด 3 ์ด์ƒ์ผ ๊ฒฝ์šฐ, 3๋ฒˆ๊ณผ ๊ฐ™์ด ์„ฑ๋ฏผ์ด์˜ ํ˜„๊ธˆ์ด ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€ ์ด์ƒ์ผ ๊ฒฝ์šฐ, ์‚ด ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ์‚ฐ๋‹ค. stock์—๋Š” ํ˜„๊ธˆ์—์„œ ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’์„ ์†Œ์ˆ˜์  ๋‚ด๋ฆผํ•˜์—ฌ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , ์„ฑ๋ฏผ์ด์˜ ํ˜„๊ธˆ์„ ๋งค์ˆ˜ํ•œ ์ฃผ๊ฐ€ ์ˆ˜ ร— ์˜ค๋Š˜์˜ ์ฃผ๊ฐ€๋ฅผ ํ•œ ๊ฐ’๋งŒํผ ๋นผ์ค€๋‹ค.
  5. 13์ผ๊นŒ์ง€ ์ฃผ๊ฐ€๋ฅผ ๊ณ„์‚ฐํ•œ ๋’ค, 14์ผ์˜ ์ฃผ๊ฐ€๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ๋Š” up/down๋“ฑ์— ์ƒ๊ด€์—†์ด ๋‘ ์‚ฌ๋žŒ์ด ๊ฐ€์ง„ ์ฃผ์‹ ์ „๋Ÿ‰์„ ๋งค๋„ํ•œ๋‹ค. 14์ผ๊นŒ์ง€์˜ ์ฃผ๊ฐ€๋ฅผ ๊ณ„์‚ฐํ•œ ๋’ค, ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ •๋‹ต์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

์ฝ”๋“œ

const fs = require('fs');
let [money, stock] = fs.readFileSync(0, 'utf-8').toString().trim().split('\n');
stock = stock.trim().split(' ').map(Number);

let SM = Number(money.trim());
let JH = Number(money.trim());
let SM_stock = 0;
let JH_stock = 0;
let up = 0;
let down = 0;
for (let i = 0; i < stock.length - 1; i++) {
  if (stock[i] <= JH) {
    JH_stock += Math.floor(JH / stock[i]);
    JH -= stock[i] * Math.floor(JH / stock[i]);
  }
  if (i !== 0 && stock[i - 1] < stock[i]) {
    up++;
    down = 0;
  } else if (i !== 0 && stock[i - 1] > stock[i]) {
    down++;
    up = 0;
  }
  if (up >= 3) {
    SM += stock[i] * SM_stock;
    SM_stock = 0;
  } else if (down >= 3) {
    if (stock[i] <= SM) {
      SM_stock += Math.floor(SM / stock[i]);
      SM -= stock[i] * Math.floor(SM / stock[i]);
    }
  }
}

let SM_result = SM + stock[stock.length - 1] * SM_stock;
let JH_result = JH + stock[stock.length - 1] * JH_stock;
if (SM_result > JH_result) console.log('TIMING');
else if (SM_result < JH_result) console.log('BNP');
else console.log('SAMESAME');

ํšŒ๊ณ 

์ •๋ฆฌ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ๋ถ€๋“ฑํ˜ธ๊ฐ€ ํ‹€๋ ธ๋‹ค๋Š” ๊ฑธ ์•Œ์•˜๋‹ค. (์ค€ํ˜„์ด๋„ ๊ฐ™์€ ์ด์œ ๋กœ ํ‹€๋ ธ์—ˆ๋Š”๋ฐ ์„ฑ๋ฏผ์ด๋„ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ์•ˆ ํ–ˆ๋‹ค.) ๊ทธ๋Ÿผ์—๋„ ๋งž์€๊ฑด ๋ฐ์ดํ„ฐ ๋ถ€์กฑ์ด์ง€ ์•Š์„๊นŒ.. ํฌ๊ฒŒ ์˜ค๋ฅ˜๋‚œ ๋ถ€๋ถ„์€ ์•„๋‹ˆ๊ณ .. ์ค€ํ˜„์ด์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋‹ˆ ๊ตณ์ด ์„ฑ๋ฏผ์ด๋ฅผ ์•ˆ ํ–ˆ๋‚˜๋ณด๋‹ค.. ์ฃผ์‹์€ ์ •๋ง ํ•œ ๋ฒˆ๋„ ๊ฑด๋“œ๋ ค๋ณธ ์  ์—†๋Š” ์˜์—ญ์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ๋ฌธ์ œ ์ดํ•ดํ•˜๋Š”๋ฐ ํž˜์„ ์ผ๋‹ค.. ๋ญ˜ ์ž๊พธ ํŒ”๊ณ .. ์‚ฌ๊ณ .. ๊ทธ๋ž˜๋„ ํ™•์‹คํžˆ ์ข‹์•„ํ•˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ถ€๋ถ„์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ์ดํ•ดํ•˜๊ณ  ๋‚˜์„œ๋Š” ์žฌ๋ฐŒ๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋‹ค.

profile
Frontend๐Ÿ“

0๊ฐœ์˜ ๋Œ“๊ธ€