We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 17451๋ฒˆ: ํ‰ํ–‰ ์šฐ์ฃผ - ํŒŒ์ด์ฌ

Redddy 2022. 6. 26. 23:19

๐Ÿ”ˆ ๋ฌธ์ œ

์„œ๊ธฐ 2XXX๋…„, ์ง€๊ตฌ๊ฐ€ ์†Œํ–‰์„ฑ๊ณผ ์ถฉ๋Œํ•  ์œ„๊ธฐ์— ์ฒ˜ํ–ˆ๋‹ค! ๋˜‘๋˜‘ํ•œ ๊ณผํ•™์ž ํ‚คํŒŒ๋Š” ํ‰ํ–‰ ์šฐ์ฃผ๋ฅผ ๋ˆ„๋น„๋ฉฐ ์ง€๊ตฌ๋ฅผ ๋Œ€์‹ ํ•  ํ–‰์„ฑ์„ ์ฐพ๋Š” ๋ง‰์ค‘ํ•œ ์ž„๋ฌด๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์ง€๊ตฌ(=ํ–‰์„ฑ 0)์— ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ์š”์ธ์„ ๊ณ ๋ คํ•œ ๊ฒฐ๊ณผ, ํ–‰์„ฑ 1, ํ–‰์„ฑ 2, …, ํ–‰์„ฑ (n-1)์„ ์ˆœ์„œ๋Œ€๋กœ ํ™•์ธํ•˜๊ณ  ์ง€๊ตฌ(=ํ–‰์„ฑ n)์— ๋Œ์•„์˜ค๋Š” ๊ฒƒ์ด ๋น„์šฉ์ƒ ์ตœ์ ์ž„์„ ์•Œ์•„๋ƒˆ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜ 1 ≤ i < n์— ๋Œ€ํ•ด, ํ–‰์„ฑ i์€ ์ง€๊ตฌ๊ฐ€ ์•„๋‹ˆ๋‹ค.
์ง€๊ตฌ์—๋Š” "์ดˆ๊ณ ์† ๊ฑท๊ธฐ ๊ธฐ๊ณ„"๋ผ๋Š”, ์†๋„๋ฅผ ์›ํ•˜๋Š” ๋งŒํผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ์žฅ์น˜๊ฐ€ ์žˆ๋‹ค. ์ง€๊ตฌ๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์†๋„๋ฅผ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ์„ ๋ฟ ๋†’์ผ ์ˆ˜๋Š” ์—†๋‹ค.
๋‹ค์Œ ์ง€์—ญ์— ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›์น™์ ์œผ๋กœ๋Š” ํ•„์š”ํ•œ ์†๋„๋ฅผ ์ •ํ™•ํžˆ ๋งž์ถฐ์•ผ ํ•˜์ง€๋งŒ, ๋‹คํ–‰ํžˆ๋„ ํ‰ํ–‰ ์šฐ์ฃผ๋Š” ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์„ ๋‘๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•œ ์†๋„์˜ ์–‘์˜ ์ •์ˆ˜ ๋ฐฐ๋กœ๋„ ๋‹ค์Œ ์ง€์—ญ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์ถฉ๋ถ„ํžˆ ๋น ๋ฅธ ์†๋„๋กœ ์ด๋™ ์ค‘์ด๋ฉฐ, ์ง€๊ตฌ์˜ ๋Œ€์ฒด ํ–‰์„ฑ์œผ๋กœ ์ ํ•ฉํ•œ์ง€ ์•„๋‹Œ์ง€๋Š” ๋„์ฐฉํ•œ ๋’ค ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ–‰์„ฑ์—์„œ๋Š” ๋„๋‹ฌํ•œ ๋’ค ์†๋„๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ๋‹ค์Œ ํ–‰์„ฑ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๋ชจ๋“  1 ≤ i ≤ n์— ๋Œ€ํ•ด, ํ–‰์„ฑ (i-1)์—์„œ ํ–‰์„ฑ i๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ (์ตœ์†Œ) ์†๋„ vi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ง€๊ตฌ์—์„œ ์˜ฌ๋ ค์•ผ ํ•˜๋Š” ์†๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜์‹œ์˜ค.

 

๐Ÿ“์ž…๋ ฅ

์ฒซ์งธ ์ค„์— n(1 ≤ n ≤ 3·105)์ด ์ฃผ์–ด์ง„๋‹ค.
๋‘˜์งธ ์ค„์— n๊ฐœ์˜ ์ •์ˆ˜ v1, v2, …, vn์ด ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ์ •์ˆ˜ 1 ≤ i ≤ n์— ๋Œ€ํ•ด 1 ≤ vi ≤ 109์„ ๋งŒ์กฑํ•œ๋‹ค.

 

๐Ÿ“‘์ถœ๋ ฅ

์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ด ์ˆ˜๋Š” ์ง€๊ตฌ์—์„œ ์˜ฌ๋ ค์•ผ ํ•˜๋Š” ์†๋„์˜ ์ตœ์†Ÿ๊ฐ’์ด๋‹ค.

 

๐Ÿ“š ๋ฌธ์ œ ํ•ด์„

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์•ฝ๊ฐ„ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ ๋ฌธ์ œ์˜€๋‹ค.

์ •๋ฆฌํ•ด๋ณด์ž๋ฉด,,,

ํ–‰์„ฑ๋งˆ๋‹ค ๊ฐ ์†๋ ฅ์ด ์ •ํ•ด์ ธ์žˆ๊ณ  ๊ทธ ํ–‰์„ฑ์„ ์ง€๋‚ ๋•Œ๋Š” ๊ทธ ์ •ํ•ด์ง„ ์†๋ ฅ์˜ ์–‘์˜ ์ •์ˆ˜ ๋ฐฐ๋กœ๋งŒ ์ง€๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค.

์ถœ๋ฐœํ•  ๋•Œ ์†๋ ฅ์€ ์ •ํ•ด์ ธ์žˆ๋‹ค.

์ถœ๋ฐœ ์ดํ›„ ์†๋ ฅ์„ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ฌ๋ฆด ์ˆ˜๋Š” ์—†๋‹ค.

 

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋‹ˆ ํ’€์ด๋ฒ•์€ ์‰ฝ๊ฒŒ ๋– ์˜ฌ๋ž๋‹ค.

์ฒ˜์Œ speed ๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๋กœ ๋‘๊ณ , ์—ญ๋ฐฉํ–ฅ ์ˆœ์ฐจ ํƒ์ƒ‰์„ ํ•œ๋‹ค.

 

๋งŒ์•ฝ ํ˜„์žฌ ์Šคํ”ผ๋“œ๊ฐ€ ํ–‰์„ฑ ์†๋ ฅ(v)๋ณด๋‹ค ๋‚ฎ๋‹ค๋ฉด ํ˜„์žฌ ์Šคํ”ผ๋“œ๋ฅผ ํ–‰์„ฑ ์†๋ ฅ(v)์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.

์ด ๊ฒฝ์šฐ๋Š” ์ •๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ๋•Œ ์†๋ ฅ์„ ๋–จ์–ด๋œจ๋ฆฐ ๊ฒฝ์šฐ์ด๋‹ค.

 

ํ˜„์žฌ ์Šคํ”ผ๋“œ๊ฐ€ ํ–‰์„ฑ ์†๋ ฅ(v)๋ณด๋‹ค ๋†’์€ ๊ฒฝ์šฐ์—๋Š” ์ •์ˆ˜ ๋ฐฐ๊ฐ€ ๋˜๋Š” ์ง€ ์ฒดํฌํ•ด์•ผํ•œ๋‹ค. ๋งŒ์•ฝ ์ •์ˆ˜๋ฐฐ๊ฐ€ ๋œ๋‹ค๋ฉด ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๋„ ๋˜์ง€๋งŒ ์ •์ˆ˜๋ฐฐ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์Šคํ”ผ๋“œ๋ฅผ ์˜ฌ๋ ค ์ •์ˆ˜๋ฐฐ๋ฅผ ๋งž์ถฐ์•ผ ํ•œ๋‹ค.

 

 

๐Ÿ’ป ์ฝ”๋“œ

n = int(input())
nums = list(map(int,input().split()))
speed = nums[-1]

for i in range(n-2, -1, -1): # ๋’ค์—์„œ ๋‘๋ฒˆ์งธ๋ถ€ํ„ฐ ์—ญ์ˆœ์œผ๋กœ
    if nums[i] > speed: # speed๋ณด๋‹ค ํ–‰์„ฑ ์†๋ ฅ์ด ํฌ๋‹ค๋ฉด
        speed = nums[i] # speed๋ฅผ ํ˜„์žฌ ํ–‰์„ฑ ์†๋ ฅ์œผ๋กœ ์—…๋ฐ์ดํŠธ
    else: speed๊ฐ€ ๋” ํฌ๊ฑฐ๋‚˜ ์ž‘๋‹ค๋ฉด
        if speed%nums[i]: # ์ •์ˆ˜๋ฐฐ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด 
            speed = (speed//nums[i]+1) *nums[i] # ๋ฐฐ์ˆ˜์ด๋ฉด์„œ ์ตœ์†Œ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ
print(speed)

 

 

๐Ÿ”— ๋ฌธ์ œ๋งํฌ ํ‰ํ–‰ ์šฐ์ฃผ

 

17451๋ฒˆ: ํ‰ํ–‰ ์šฐ์ฃผ

ํ–‰์„ฑ 1์— ๊ฐ€๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค ์„ธ ๋ฐฐ์˜ ์†๋„๋กœ, ํ–‰์„ฑ 2์˜ ๊ฒฝ์šฐ ๋‘ ๋ฐฐ์˜ ์†๋„๋กœ ์ด๋™ํ•˜๋ฉด, ์ง€๊ตฌ์—์„œ๋Š” 900์˜ ์†๋„๋งŒ ์Œ“์œผ๋ฉด ๋œ๋‹ค.

www.acmicpc.net

 

ํ‰ํ–‰์šฐ์ฃผ