์ƒˆ์†Œ์‹

๐Ÿงฎ PS

๋ฐฑ์ค€ (boj) 2846 ํŒŒ์ด์ฌ - ์˜ค๋ฅด๋ง‰๊ธธ

  • -

๋ฌธ์ œ ๋งํฌ : https://www.acmicpc.net/problem/2846

 

2846๋ฒˆ: ์˜ค๋ฅด๋ง‰๊ธธ

๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ์ž์ „๊ฑฐ๋ฅผ ํƒ€๊ณ  ๋“ฑ๊ตํ•œ๋‹ค. ์ž์ „๊ฑฐ ๊ธธ์€ ์˜ค๋ฅด๋ง‰๊ธธ, ๋‚ด๋ฆฌ๋ง‰๊ธธ, ํ‰์ง€๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ๊ฐœ๊ฐ• ์ฒซ ๋‚  ์ž์ „๊ฑฐ๋ฅผ ํƒ€๊ณ  ๊ฐ€๋ฉด์„œ ์ผ์ • ๊ฑฐ๋ฆฌ๋งˆ๋‹ค ๋†’์ด๋ฅผ ์ธก์ •ํ–ˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ๊ฐ€์žฅ ํฐ ์˜ค๋ฅด๋ง‰๊ธธ์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ธก์ •ํ•œ ๋†’์ด๋Š” ๊ธธ์ด๊ฐ€ N์ธ ์ˆ˜์—ด๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์˜ค๋ฅด๋ง‰๊ธธ์€ ์ ์–ด๋„ 2๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋†’์ด๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋‹ค. ์˜ค๋ฅด๋ง‰๊ธธ์˜ ํฌ๊ธฐ๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž์™€ ๋งˆ์ง€๋ง‰ ์ˆซ์ž์˜ ์ฐจ์ด์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋†’์ด๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€

www.acmicpc.net

 

 

 

 

n = int(input())
arr = list(map(int,(input().split())))

temp = arr[0] ; sum = 0
answer = []

for i in range(1,n):
    if arr[i] - temp >0 : #๋” ๋†’์€ ์ˆซ์ž๊ฐ€ ๋“ฑ์žฅ์‹œ์—, ๊ทธ ์ฐจ์ด๋ฅผ sum์— ๋”ํ•˜๊ธฐ. 
        sum += arr[i]-temp
        temp = arr[i] # ํ˜„์žฌ ์ˆ˜(temp) ์—…๋ฐ์ดํŠธ
        
    elif arr[i] == temp or arr[i]-temp<0 : #๊ฐ™์€์ˆ˜ ๋˜๋Š” ๋” ๋‚ฎ์€ ์ˆ˜๊ฐ€ ๋“ฑ์žฅ์‹œ์—
        answer.append(sum) #์˜ค๋ฅด๋ง‰๊ธธ์ด ๋๋‚ฌ์œผ๋ฏ€๋กœ ๋ฐฉ๊ธˆ๊นŒ์ง€์˜ ์˜ค๋ฅด๋ง‰๋†’์ด sum์„ list(answer)์— ์ถ”๊ฐ€
        temp = arr[i] # ํ˜„์žฌ ์ˆ˜(temp) ์—…๋ฐ์ดํŠธ
        sum = 0 #sum ์ดˆ๊ธฐํ™”
        
answer.append(sum) # ๋งจ ๋งˆ์ง€๋ง‰์— ์˜ค๋ฅด๋ง‰๊ธธ์ด ๋“ฑ์žฅํ•˜๋ฉด ์œ„ for๋ฌธ์œผ๋กœ๋Š” append๊ฐ€ ์•ˆ๋˜์„œ ์ถ”๊ฐ€.

if len(answer) == 0 : print(0) # ์˜ค๋ฅด๋ง‰์ด ํ•œ๋ฒˆ๋„ ์—†์—ˆ๋‹ค๋ฉด 0 ์ถœ๋ ฅ
else : print(max(answer)) 

 

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.