-
[๋ฐฑ์ค] 10211 Maximum Subarray with PythonPS 2022. 3. 22. 17:03728x90๋ฐ์ํ
๐ BOJ 10211 Maximum Subarray
๐ก ์กฐ๊ฑด
ํฌ๊ธฐ N์ธ ์ ์ํ ๋ฐฐ์ด X๊ฐ ์์ ๋, X์ ๋ถ๋ถ ๋ฐฐ์ด(X์ ์ฐ์ํ ์ผ๋ถ๋ถ) ์ค
๊ฐ ์์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๋ถ๋ถ ๋ฐฐ์ด์ ์ฐพ๋ Maximum subarray problem(์ต๋ ๋ถ๋ถ๋ฐฐ์ด ๋ฌธ์ )N๊ณผ ๋ฐฐ์ด X๊ฐ ์ฃผ์ด์ก์ ๋, X์ maximum subarray์ ํฉ์ ๊ตฌํ๋ ๋ฌธ์ .
๋ฐฐ์ด์ ํฌ๊ธฐ N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 1,000)
๋ฐฐ์ด X์ ๋ด์ฉ์ ๋ํ๋ด๋ N๊ฐ์ ์ ์๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ด๋ ์ฃผ์ด์ง๋ ์๋ ์ ๋๊ฐ์ด 1,000๋ณด๋ค ์์ ์ ์์ด๋ค.
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin for _ in range(int(stdin.readline())): n = int(stdin.readline()) arr = list(map(int, stdin.readline().split())) res = -int(1e9) for i in range(n): temp = arr[i] if res < temp: res = temp for j in range(i + 1, n): temp += arr[j] if temp > res: res = temp print(res)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
2 5 1 2 3 4 5 5 2 1 -2 3 -5
์คํ๊ฒฐ๊ณผ
15 4
โจ๏ธ ๋ฌธ์ ํ์ด
i๋ฒ์งธ๋ฅผ ๊ธฐ์ค์ผ๋ก i + 1๋ฒ์งธ ์ซ์๋ถํฐ ๋ํ์ ๋, ์ต๋๊ฐ์ ๊ตฌํ์ฌ res์ ์ ์ฅํ๋ค
res ์ถ๋ ฅ
๐พ ๋๋์
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 12761 ๋๋ค๋ฆฌ with Python (0) 2022.03.23 [๋ฐฑ์ค] 11104 Fridge of Your Dreams with Python (0) 2022.03.22 [๋ฐฑ์ค] 8974 ํฌ์ฃผ์ ์ํ์ํ with Python (0) 2022.03.21 [๋ฐฑ์ค] 8911 ๊ฑฐ๋ถ์ด with Python (0) 2022.03.21 [๋ฐฑ์ค] 5671 ํธํ ๋ฐฉ ๋ฒํธ with Python (0) 2022.03.18