๐กsolutions )
๐ฌ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ์๊ณ ๋ฆฌ์ฆ(Sliding Window)์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
๐ฌ ๋จผ์ ์ผ์ ์๋์ด๋ค์ ๋ํ๋ด๋ ice ๋ฐฐ์ด์ ์ต๋ ํฌ๊ธฐ๋งํผ ๋ง๋ค์ด์ค๋ค. -> ice = [0]*1000001
๐ฌ ์ ๋ ฅ์ ์ฃผ์ด์ง ์๋์ด ์ขํ์ ํด๋นํ๋ ์ผ์์ ์์ ๋ฃ์ด์ค๋ค.
๐ฌ ์๋์ฐ์ ๊ณ ์ ๋ ๋ฒ์๋ฅผ next = 2*k +1(ํ ์ขํ์์ ์๋ค๋ก k๋งํผ์ฉ ๋จ์ด์ง๋ ์๋ ๋ฒ์๋ฅผ ๋ชจ๋ ํฌํจํ๋ฏ๋ก)๋ก ๋๊ณ , for ๋ฐ๋ณต๋ฌธ์ ๋๋ ค ํ์นธ์ฉ ์ด๋ํ๋ฉฐ ๋งจ ๋ค์ ์๋ ๊ฐ ice[i]์ ์๋์ฐ๊ฐ์์ (+)๋ํด์ฃผ๊ณ ๋งจ ์์ ์๋ ๊ฐ ice[i-next]์ (-)๋นผ์ค๋ค.
๐ฌ window๊ฐ ์ ๋ฐ์ดํธํ ๋๋ง๋ค answer๋ ์ต๋๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํด์ฃผ๊ธฐ
๐ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ์๊ณ ๋ฆฌ์ฆ(Sliding Window)์ด๋? ์๋์ฐ ์ฆ ์ผ์ ํ ๋ฒ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ ์งํ๋ฉด์ ์ด๊ฒ์ ์ด๋(sliding) ํ๋ ๊ฒ์ด๋ค. ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ์ ์์์ ์ผ์ ๋ฒ์์ ๊ฐ์ ๋น๊ตํ ๋ ์ฌ์ฉํ๋ฉด ์ ์ฉํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋งค๋ฒ ์ฒ๋ฆฌ๋๋ ์ค๋ณต๋ ์์๋ฅผ ๋ฒ๋ฆฌ์ง ์๊ณ ์ฌ์ฌ์ฉํจ์ผ๋ก์จ ๋ญ๋น๋๋ ๊ณ์ฐ์ ํ์ง ์์์ผ๋ก์จ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ถ์ฒ ๋ฐ ์ฐธ๊ณ ๋ธ๋ก๊ทธ |
๐๋น์ทํ ์ ํ์ ๋ฌธ์ ํ์ด๋ณด๊ธฐ๐ ๋ฐฑ์ค 2559๋ฒ ์์ด |
๐จ๐ปcode )
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(n)]
ice = [0]*1000001
for i in range(n):
ice[arr[i][1]] = arr[i][0]
next = 2*k + 1
window = sum(ice[:next])
answer = window
for i in range(next, 1000001):
window += (ice[i] - ice[i-next])
answer = max(answer, window)
print(answer)
๐description )
๋ฌธ์
๋์ด ์ฌ๋ฆ๋ ๋๋ฌผ์์ ๋ฐฑ๊ณฐ ์จ๋ฒํธ๋ ๋๋ฌด ๋์์ ๊ผผ์ง๋ ํ๊ธฐ ์ซ๋ค. ๋คํํ๋ ์ฌ์ก์ฌ๋ค์ด ์จ๋ฒํธ์ ๋์๋ฅผ ์ํ๊ธฐ ์ํด ์ผ์์ด ๋ด๊ธด ์๋์ด๋ค์ ๊ฐ์ ธ๋ค ์ฃผ์๋ค. ์จ๋ฒํธ๊ฐ ๊ฐ์ฅ ์ ์ ๊ฑฐ๋ฆฌ๋ง ์์ง์ด๊ณ ๋ ์ต๋ํ ๋ง์ ์ผ์์ผ๋ก ๋์๋ฅผ ์ํ ์ ์๋๋ก ๋์์ฃผ์.
์ฐ๋ฆฌ ์์ 1์ฐจ์ ๋ฐฐ์ด๋ก ์๊ฐํ๋ฉฐ, ์ด N(1 ≤ N ≤ 100000)๊ฐ์ ์ผ์ ์๋์ด๋ค์ด xi(0 ≤ xi ≤ 1,000,000)์ขํ๋ง๋ค ๋์ฌ ์๊ณ ๊ฐ ์๋์ด ์์๋ gi(1 ≤ gi ≤ 10,000)์ฉ์ ์ผ์์ด ๋ค์ด ์๋ค. ์ผ๋จ ์จ๋ฒํธ๊ฐ ์๋ฆฌ๋ฅผ ์ก์ผ๋ฉด ๊ทธ๋ก๋ถํฐ ์ข์ฐ๋ก K(1 ≤ K ≤ 2,000,000) ๋งํผ ๋จ์ด์ง ์๋์ด๊น์ง ๋ฟ์ ์ ์๋ค. ์จ๋ฒํธ๋ ์๋์ด๊ฐ ๋์ฌ ์๋ ์๋ฆฌ์๋ ์๋ฆฌ์ก์ ์ ์๋ค. ๋ชจ๋ ์ผ์ ์๋์ด์ ์์น๋ ๋ค๋ฅด๋ค.
์จ๋ฒํธ๊ฐ ์ต์ ์ ์๋ฆฌ๋ฅผ ๊ณจ๋์ ๋ ์ผ์์ ํฉ์ ๊ตฌํ์์ค. ์ฆ, ์ผ์๋ค์ ํฉ์ ์ต๋๊ฐ์ ๊ตฌํด์ผ ํ๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ์ ์ N๊ณผ K๊ฐ ๋ค์ด์จ๋ค. ๋์งธ ์ค๋ถํฐ N์งธ ์ค๊น์ง, ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ๊ฐ ์๋์ด์ ์ผ์์ ์์ ๋ํ๋ด๋ gi์ ์๋์ด์ ์ขํ๋ฅผ ๋ํ๋ด๋ xi๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์จ๋ฒํธ๊ฐ ํํ ์ต์ ์์น๋ก๋ถํฐ K๋งํผ ๋จ์ด์ง ๊ฑฐ๋ฆฌ ๋ด์ ์๋ ์ผ์๋ค์ ํฉ(์ต๋๊ฐ)์ ์ถ๋ ฅํ๋ค.