2023. 3. 19. 01:42ใStudy_Develop/PYTHON
๋ฌธ์ >
๋ฌธ์ ์ ๊ท์น>
num=3, total=12, result=[3, 4, 5]๋ฅผ ๋ณด๋ฉด ํ๊ท (total//num=4)์ด ๊ฐ์ด๋ฐ ์ ์์นํด ์๊ณ ,
์ ์์ ์ซ์๋ -1, +1 ํ ์ซ์์ ๋๋ค.
num=5, total=15, result=[1, 2, 3, 4, 5]๋ฅผ ๋ณด๋ฉด ํ๊ท (total//num=3)์ด ๊ฐ์ด๋ฐ ์ ์์นํด ์๊ณ ,
์ ์์ ์ซ์๋ -2, -1, 0, +1, +2 ํ ์ซ์์ ๋๋ค.
num=4, total=14, result=[2, 3, 4, 5]๋ฅผ ๋ณด๋ฉด ํ๊ท (total//num=3 )์ด ๊ฐ์ด๋ฐ ์ผ์ชฝ์ ์์นํด ์๊ณ ,
์ ์์ ์ซ์๋ -1, +1, +2 ํ ์ซ์์ ๋๋ค.
num=5, total=5, result=[-1, 0, 1, 2, 3]๋ฅผ ๋ณด๋ฉด ํ๊ท (total//num=1)์ด ๊ฐ์ด๋ฐ ์์นํด ์๊ณ ,
์ ์์ ์ซ์๋ -2, -1, 0, +1, +2 ํ ์ซ์์ ๋๋ค.
-> ์์ ๊ท์น์์ ๋ฐ๊ฒฌํ ์ ์๋ ๊ฒ์ num ์ด ํ์์ด๋ฉด, ๊ฐ์ด๋ฐ์ ์์นํ๊ณ
num ์ด ์ง์์ด๋ฉด ๊ฐ์ด๋ฐ ์ผ์ชฝ์ ์์นํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ 1>
def solution(num, total):
middle_idx = num // 2
average = total // num
if num%2==1:
start_num = middle_idx * - 1
else:
start_num = middle_idx * -1 +1
end_num = middle_idx + 1
return [num + average for num in range(start_num, end_num)]
์์ ๊ท์น์ ์ด์ฉํ์ฌ ์ฝ๋ฉํ ๋ฐฉ๋ฒ์ ๋๋ค.
num ์ด ํ์์ด๋ฉด, ๊ฐ์ด๋ฐ์ ์์นํ๊ณ
num ์ด ์ง์์ด๋ฉด ๊ฐ์ด๋ฐ ์ผ์ชฝ์ ์์นํ๋ค๋ ๊ฒ์ ์ด์ฉํด์ if-else๋ฌธ์ ์์ฑํด์ฃผ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ 2>
def solution(num, total):
average = total // num
return [i for i in range(average - (num-1)//2, average + (num + 2)//2)]
๋ฌธ์ ํด๊ฒฐ1๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋น์ทํ์ง๋ง ์ธ๋ฑ์ค๋ฅผ ์์ ๊ณ num - 1๋ก ํ๊ณ ์ฐ์ธก์ num + 2๋ก ์ง์, ํ์๋ฅผ
๊ตฌ๋ถํด ์ฃผ์์ต๋๋ค.
์ข, ์ฐ์ธก ์ซ์์ ๊ฐ์๋ num์ด ์ง์์ด๋ ํ์์ด๋์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ผ์ชฝ ๋ ๊ฐ์ ๊ตฌํ๊ธฐ
์ํด์๋ num - 1๋ก ํ๊ณ ์ฐ์ธก์ num + 2๋ฅผ ํ๋ฉด ์ง์, ํ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์ฐ์์ ์ธ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค.
โ ๋ค๋ฅธ ๋ฌธ์ ๋ค๊ณผ ๋น๊ต์ ํ๊ธฐ์ด๋ ค์ ์ต๋๋ค. ๋ค๋ฅธ lv.0์ ์๋ ๋ฌธ์ ์ ๋น๊ตํ์ ๋ ์ ๋ต๋ฅ ๋ ๋ฎ์ ํธ์ ๋๋ค.
๋ค๋ฅธ ์์๋ฅผ ๋ฃ์์ ๋์๋ ์ด ์์ด ์ฑ๋ฆฝํ๋ ค๋? ๋ฅผ ์๊พธ ๊ณ ๋ฏผํ๋ค๋ณด๋
์๊ฐ์ด ๋ง์์ง ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ์ ๋์จ ์์๋ค๋ก๋ง ๊ท์น์ ์ฐพ๊ณ ์ ์์์ ๋ต์ด ๋ถํฉํ๋๋ก
์ฝ๋๋ฅผ ์ง๋ฉด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.