๐ ๋ฌธ์
์๊ธฐ 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)
๐ ๋ฌธ์ ๋งํฌ ํํ ์ฐ์ฃผ
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 9375๋ฒ: ํจ์ ์ ์ ํด๋น - ํ์ด์ฌ (0) | 2022.07.07 |
---|---|
[๋ฐฑ์ค] 13140๋ฒ: Hello World! - ํ์ด์ฌ (0) | 2022.06.27 |
[๋ฐฑ์ค] 1260๋ฒ: DFS์ BFS - ํ์ด์ฌ (0) | 2022.06.25 |
[๋ฐฑ์ค] 1389๋ฒ: ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น - ํ์ด์ฌ (0) | 2022.06.23 |
[๋ฐฑ์ค] 17626๋ฒ: Four Squares - ํ์ด์ฌ (0) | 2022.06.20 |