Algorithms
[Baekjoon] 17392. ์ฐ์ธํ ๋ฐฉํ - python
thals0
2023. 9. 29. 17:16
728x90
https://www.acmicpc.net/problem/17392
17392๋ฒ: ์ฐ์ธํ ๋ฐฉํ
1์ผ, 5์ผ, 8์ผ์ ์ฝ์์ ์์๋๋ก ๋ฐฐ์นํ๋ฉด, 4์ผ๊ณผ 10์ผ์ ๊ฐ๊ฐ 1๋งํผ์ ์ฐ์ธํจ์ ๋๋ผ๊ฒ ๋์ด, ์ด 2๋งํผ์ ์ฐ์ธํจ์ ๋๋ผ๊ฒ ๋๋ค. ์ด๋ณด๋ค ๋ ์ฐ์ธํจ์ ๋๋ผ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์กด์ฌํ์ง ์๋๋ค.
www.acmicpc.net
๋ฌธ์ ์ ๋ณด
๋ฌธ์ ์ ํ | ๋์ด๋ | ๊ฑธ๋ฆฐ ์๊ฐ | ํด๊ฒฐ ์ ๋ฌด |
๊ทธ๋ฆฌ๋ | ์ค๋ฒ1 | 1h | o |
์ค๊ณ ๋ฐฉ๋ฒ
- sum : 0๊น์ง๋ ์ฐ์ธํ์ง ์์ผ๋๊น arr์ ๋ชจ๋ ๊ฐ์ 1์ ๋ํด์ค
- left : m - sum # ์ฐ์ธํ ๋
- n+1 : ์ฐ์ธํ ๋ ์ด ๋ค์ด๊ฐ ์ ์๋ ์นธ
- ์์(3 10 2 2 1)์ ๊ฒฝ์ฐ์๋ ๋ค์ด๊ฐ ์ ์๋ ์นธ์ด 4๊ฐ์ธ๋ฐ ์ฐ์ธํ ๋ ์ด 2์ด๋ฏ๋ก 1์ ์ ๊ณฑ * 2 ์ด ์ฐ์ธ์ ์ดํฉ์ด ๋๋ค
- ๋ง์ฝ ๋ค์ด๊ฐ ์ ์๋ ์นธ์ด 4๊ฐ์ธ๋ฐ ์ฐ์ธํ ๋ ์ด 5์ด์์ผ๋ฉด
- -1, -1, -1, -1 ๋จผ์ ๋ค์ด๊ฐ๊ณ ๋๋จธ์ง ํ๊ฐ -2์ ์ ๊ณฑ ๋ํด์ฃผ๋ ๊ฒ
์ฝ๋
n,m = map(int, input().split())
answer = 0
sum = 0
left = 0
arr = list(map(int, input().split()))
for i in arr:
sum += i + 1 # 0๊น์ง๋ ์ฐ์ธํ์ง ์์ผ๋๊น + 1
if sum < m:
left = m - sum # ๋๋จธ์ง
div1 = left // (n + 1) # ๋ค์ด๊ฐ ์ ์๋ ์นธ์ ์
div2 = left % (n + 1)
for i in range(1, div1 + 1):
answer += i ** 2 * (n + 1)
answer += (div1 + 1) ** 2 * div2
print(answer)
์๊ฐ ๋ณต์ก๋
O(n)
์ด๋ ค์ ๋ ์
๋ค์ด๊ฐ๋ ๊ณต๊ฐ์ ๋ํด ๊ตฌํํ๋ ๊ฒ์ด ํ๋ค์์
728x90