Skip to content

Commit 6e05a56

Browse files
authored
Merge pull request #163 from zaqquum/main
HONGJOO/4์›” 1์ฃผ์ฐจ /3๋ฌธ์ œ
2 parents 485e2b1 + 6bd0dd4 commit 6e05a56

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"""
2+
# slide window , ํˆฌ ํฌ์ธํ„ฐ
3+
-์—ฐ์†๋œ ๋‚ ์งœ์˜ ์˜จ๋„ ํ•ฉ ์ค‘ ์ตœ๋Œ€๊ฐ’ ์ถœ๋ ฅ = goal
4+
- sum(temp[s:e]) ๊ฐ™์€ ํ•œ๋ฒˆ์”ฉ ์Šฌ๋ผ์ด๋”ฉ์œผ๋กœ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐœ์ƒ
5+
- window ๋ฒ”์œ„ ๋‚ด start ์™€ end ํฌ์ธํŠธ ๊ฐ’์„ ๋นผ๊ณ , ๋”ํ•˜๋Š” ์‹์œผ๋กœ ์ „์ฒด ํ•ฉ ๊ตฌํ•˜๊ธฐ
6+
# flow
7+
1. temp ๋ฆฌ์ŠคํŠธ ์ž…๋ ฅ ๋ฐ›๊ธฐ
8+
-window size =k , N : ๋‚ ์งœ
9+
2. window ๋ฒ”์œ„์— ํ•ด๋‹นํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ํ•ฉ ์ค‘ ์ตœ๋Œ€๊ฐ’ ๊ตฌํ•˜๊ธฐ
10+
next_window = ์ด์ „ window - ์•ž + ๋’ค
11+
=> sliding winodw์„ ํ†ตํ•ด window ๋‚ด ๋งจ์•ž๊ณผ ๋งจ ๋’ค ๊ฐ’๋งŒ ๊ตฌํ•ด์„œ ๋”ํ•˜๊ณ  ๋นผ๋ฉด ๋ฒ”์œ„๋‚ด ์ดํ•ฉ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
12+
13+
"""
14+
import sys
15+
input = sys.stdin.readline
16+
#0. ์ „์ฒด ์ผ์ˆ˜ = N , ์—ฐ์† ์ผ์ˆ˜= K ,
17+
N , k = map(int,input().split())
18+
temp = list(map(int, input().split()))
19+
20+
# 1. ์ฒซ window ๋ฒ”์œ„ ์ดˆ๊ธฐํ™”
21+
sum_tmp = sum(temp[0:k]) # ์ดˆ๊ธฐ window ๋‚ด ๋ฆฌ์ŠคํŠธ์˜ ํ•ฉ
22+
max_sum = sum_tmp # ์ตœ๋Œ€๊ฐ’์„ window ํ•ฉ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์„ค์ •
23+
# 2. ํˆฌ ํฌ์ธํ„ฐ (s,e)์„ ์ด๋™ํ•˜์—ฌ window ๋ฒ”์œ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ
24+
# e :์ƒˆ๋กœ์šด window ๋ฒ”์œ„์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’
25+
# s :์ƒˆ๋กœ์šด window ๋ฒ”์œ„์—์„œ ๋น ์ง€๋Š” ๊ฐ’
26+
for e in range(k, N):
27+
s = e-k # 0 n-k
28+
sum_tmp = sum_tmp - temp[s] + temp[e] # ์ƒˆ๋กœ์šด window ๋ฒ”์œ„ ๋‚ด์˜ ํ•ฉ
29+
max_sum = max(max_sum , sum_tmp) #
30+
31+
print(max_sum)

โ€ŽHongjoo/๋ฐฑ์ค€/์•ˆ์ „์˜์—ญ.pyโ€Ž

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"""
2+
#ํ”ผ๋ณด๋‚˜์น˜ ๋น„์Šค๋ฌด๋ฆฌํ•œ์ˆ˜์—ด / ์‹ค๋ฒ„ 5
3+
https://www.acmicpc.net/problem/14495
4+
- ์กฐ๊ฑด : 1< n <=116
5+
6+
# ๋ฌธ์ œ ์œ ํ˜• : DP
7+
1. ์ž…๋ ฅ
8+
2. dp ์ƒ์„ฑ
9+
dp[1<idx <=n] = [1,1,1...f(n)]
10+
-์ดˆ๊ธฐํ™” : dp[1]=dp[2]=dp[3] = 1
11+
12+
3. ์ ํ™”์‹
13+
f(n) = f(n-1) + f(n-3)
14+
- dp์— ์ €์žฅํ•˜๊ธฐ
15+
- dp์— ์žˆ์œผ๋ฉด ํ˜ธ์ถœ, ์—†์œผ๋ฉด ๊ณ„์‚ฐ & dp์— ์—…๋ฐ์ดํŠธ
16+
"""
17+
#1. ์ž…๋ ฅ ๋ณ€์ˆ˜ ์ €์žฅ
18+
N = int(input())
19+
#2. dp ์ƒ์„ฑ & ์ดˆ๊ธฐํ™”
20+
dp = [ 0 for _ in range(116+1)]
21+
22+
23+
#3. ์ ํ™”์‹
24+
for i in range(0,N+1) :
25+
if i in [0,1,2,3] :
26+
dp[i] = 1
27+
elif dp[i] == 0 : # i>=4, dp์— ์—†์œผ๋ฉด -> ์—…๋ฐ์ดํŠธ
28+
29+
dp[i] = dp[i-1] + dp[i-3]
30+
31+
print(dp[N])

0 commit comments

Comments
ย (0)