๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค - ์ต๊ณ ์ ์งํฉ
ํ์ด ๊ณผ์
์์ฐ์ n ๊ฐ๋ฅผ ์ฌ์ฉํด์ ์ดํฉ์ด S๊ฐ ๋๋ฉฐ ๋์์ ๊ฐ ์์์ ๊ณฑ์ด ์ต๋์ธ ์งํฉ์ ์ต๊ณ ์ ์งํฉ
์ด๋ผ๊ณ ํํํฉ๋๋ค.
์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ํฉ S๊ฐ 1์ต์ด๊ณ ์์ฐ์ n์ ๊ฐ์๋ ์ต๋ 10,000 ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์กฐํฉ์ ๋ง๋ค์ด๋ณด๋ ๋ฐฉ๋ฒ์ ์๊ฐ๋ด์ ์ํ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ข ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ์์๊น์? ๋ฐ๋ก ํ์์ ์ธ ์ ํ
์ผ๋ก ์ต์ ์ ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ฆ๋ช
ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํด๋ดค์ต๋๋ค.
์ฐ์ ์ด k ๊ฐ์ j ํฉ์ด S ๋ฅผ ๋ง์กฑํ๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
j j j ... j => ์ด k ๊ฐ์ด๋ฉฐ ํฉ์ด S, ๋ฐ๋ผ์ j\*k = S
ํฉ์ด S๊ฐ ๋๋ ์ซ์์ ์กฐํฉ์ ์๋นํ ๋ค์ํ๋ฏ๋ก ์ด๋ฒ์๋ j์ ์์์ ์์ ์ ์ l ๋งํผ ๊ฐ์ด ์ฐจ์ด๊ฐ ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ ธ๋ณด๊ฒ ์ต๋๋ค.
j-l j j j .... j+l => ํฉ์ ์ฌ์ ํ S
์ด ๊ฒฝ์ฐ ๋ชจ๋ ์์์ ํฉ์ด S ์ด๊ธฐ ๋๋ฌธ์ ํ ์์์์ l ๋งํผ ๊ฐ์ํ์ผ๋ฏ๋ก ๋ค๋ฅธ ์์์์ l ๋งํผ ๊ฐ์ด ๋ํด์ก์ ๊ฒ์
๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ ์์๋ฅผ ๊ณฑํ์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ ๊น์?
๊ธฐ์กด์๋ j*k
์์ง๋ง ๋ ์์์ ๊ฐ์ด ๋ฌ๋ผ์ ธ์ (j-l)(j+l)(j*(k-2))
๊ฐ ๋์์ต๋๋ค.
๋ฐ๋ผ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ ๋ ์์๋ง ๋น๊ตํ์๋ฉด j^2-l^2 < j^2
์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฐ์ด ๊ท ๋ฑํ ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ๊ฐ ๋ชจ๋ ์์์ ๊ณฑ์ด ๋ ํฌ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ต๊ณ ์ ์งํฉ์ ์ฐพ๊ธฐ ์ํด์๋ ๋ชจ๋ ์์๋ฅผ ์ต๋ํ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐํด์ค์ผํ๋ค
๋ผ๋ ์ฌ์ค์ ์ ์ ์์ต๋๋ค.
์ฝ๋๋ก ๊ตฌํํ ๋๋ S๋ฅผ n์ผ๋ก ๋๋ ๋ชซ์ n ๊ฐ ๋งํผ ํ ๋นํ ๋ค S ์์ n์ ๋๋ด์๋ ๋ฐ์ํ ๋๋จธ์ง ๊ฐ์ ๊ฐ ์์์ ๊ท ๋ฑํ๊ฒ ๋๋ ์ฃผ๋ฉด ๋ฉ๋๋ค.
๊ตฌํ ์ฝ๋ ์์ฒด๋ ์งง์์ง๋ง ๋ง์ ๊ฒ์ ์๊ฐํด๋ณผ ์ ์๋ ๋ฌธ์ ์์ต๋๋ค.
์ฝ๋
def solution(n, s):
if s < n:
return [-1]
quo, remain = divmod(s, n)
answer = [quo] * n
# ๋๋จธ์ง๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐํ๋ค
idx = n-1
for i in range(remain):
answer[idx - i] += 1
return answer
'๐ algorithm > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค Level 2 - ํ๊ฒ ๋๋ฒ (0) | 2021.03.01 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค Level 3 - ๋คํธ์ํฌ (0) | 2021.03.01 |
ํ๋ก๊ทธ๋๋จธ์ค Level 2 - ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2021.03.01 |
ํ๋ก๊ทธ๋๋จธ์ค Level 3 - ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2021.03.01 |
ํ๋ก๊ทธ๋๋จธ์ค Level 4 - ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2021.03.01 |
๐ฌ ๋๊ธ