BOJ/๐Ÿฅˆ

โ˜…Sliding Window Upper + Intermediate - 2 Solvedโ˜…

metamong 2024. 10. 7.

โ˜… 21921 ๋ธ”๋กœ๊ทธ โ˜…

import sys
input=sys.stdin.readline

N,X=map(int,input().split())
visitors=list(map(int,input().split()))
ans,freq,cursum,start=0,0,0,0
for i in range(N):
    if i < X:
        cursum+=visitors[i]
        if i == (X-1):
            ans = cursum
            freq=1
    else:
        cursum -= visitors[start]
        cursum += visitors[i]
        if ans == cursum:
            freq+=1
        elif cursum > ans:
            ans = cursum
            freq=1
        start+=1

if ans == 0:
    print('SAD')
else:
    print(ans,freq,sep='\n')

 

๐Ÿ‚ ์ „ํ˜•์ ์ธ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฌธ์ œ. ๊ณ ์ •๋œ X์ผ ๋™์•ˆ์˜ ๋ฐฉ๋ฌธ์ž ์ˆ˜ ์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. ์—ฌ๊ธฐ์— ์ถ”๊ฐ€๋กœ ์ตœ๋Œ“๊ฐ’ ๋ฐฉ๋ฌธ์ž ์ˆ˜ frequency๊นŒ์ง€ ๊ฐ™์ด ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. ans == cursum ๋˜๋Š” cursum > ans์ผ ๋•Œ ๋”ฐ๋กœ ๋‚˜๋ˆ„์–ด์„œ freq ๋ณ€์ˆ˜ ์กฐ์ ˆํ•˜๋ฉด ๋œ๋‹ค.


โ˜… 12847 ๊ฟ€ ์•„๋ฅด๋ฐ”์ดํŠธ โ˜…

import sys
input=sys.stdin.readline

n,m=map(int,input().split())
T=list(map(int,input().split()))
ans,cursum,start=0,0,0

for i in range(n):
    if i < m:
        cursum+=T[i]
        if i == (m-1):
            ans = cursum
    else:
        cursum-=T[start]
        cursum+=T[i]
        ans = max(ans,cursum)
        start+=1
print(ans)

 

๐Ÿ‚ ์—ฐ์† ๊ฐœ์ˆ˜ m์ธ ์Šฌ๋ผ์ด๋“œ ์ค‘ ๊ฐ€๋Šฅ ์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๊ธฐ ๋ฌธ์ œ


 

 

 

 

 

 

 

 

 

 

 

 

 

 

๋Œ“๊ธ€