๋ฌธ์ ํด์์ ์ํด์ผ ํ๋ ๋ฌธ์ .
์์ด๋์ด
๋จผ์ ๋ฌธ์ ๊ฐ ์๊ตฌํ๋ ๊ฒ์ ์ดํดํ๋ ๊ฒ ํ์ํ๋ค.
๋ฌธ์ ์์๋ ๊ฐ ์ง์ค๊ตญ์ ์์ ๊ฐ๋ฅ์์ญ์ ๊ฑฐ๋ฆฌ์ ํฉ์ ์ต์๊ฐ์ ๊ตฌํ๋ผ๊ณ ํ๋ค.
์ด๋ ์๋ ์์ ๋ฅผ ๋ณด๋ฉฐ ์ค๋ช
ํด ๋ณด๋ฉด,
์ด๋ฐ ์์ผ๋ก ๊ฐ ์ผ์๋ค์ ์ปค๋ฒํ ์ ์๋ ์ต์ ์์ญ์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๋ฉด ๋๋ค. ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์๋ค์ํผ ๋ฌธ์ ์ ๋ต์ ๊ตฌํ ๋ ์ผ์์ ์์น๋ ๊ฒน์ณ๋ ์๊ด์๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด, ์ผ์๋ค์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋จผ ๊ณณ๋ถํฐ ์ฐจ๋ก๋๋ก ์ง์์ฃผ๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด ์์ ๊ทธ๋ฆผ์์ ์ผ์๋ค์ ์ฒ์์ 1 - 9 ๋ฒ์์ ์ ๋ถ ์๋ค. ์ฌ๊ธฐ์ 3๊ณผ 6์ ์ผ์๊ฐ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ผ๋ฏ๋ก ์ด๊ณณ์ ๋น์์ฃผ๋ฉด 1 - 3, 6 - 9 ๋ ๊ฐ์ ์ง์ค๊ตญ์ผ๋ก ๋ชจ๋ ์ผ์๋ฅผ ์ต์ ์์ญ์ผ๋ก ์ปค๋ฒํ ์ ์๋ค.
์ด๋ฐ ์์ผ๋ก ์ด ๋ฌธ์ ๋ ๊ฐ๊ฒฉ์ด ๊ธด ๊ณณ๋ถํฐ ์ฐจ๋ก๋๋ก ์ง์์ฃผ๋ฉด ๋๋ค. ์ง์ค๊ตญ์ ๊ฐ์๊ฐ K๊ฐ ์ด๋ฏ๋ก K - 1๋ฒ ๋ฐ๋ณตํด์ ์ง์์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ์ง์ค๊ตญ ๊ฐ์๊ฐ ์ผ์ ๊ฐ์๋ณด๋ค ๋ง๊ฑฐ๋ ๊ฐ์ผ๋ฉด(K >= N) ๋ฐ๋ก ๊ณ์ฐ ํ์ ์์ด 0์ ์ถ๋ ฅํด ์ฃผ๋ฉด ๋๋ค. ๊ฐ๊ฐ์ ์ผ์ธ๋ค์ ์ ๋ถ ์ปค๋ฒ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ.
์ ์ฒด ์ฝ๋
diffList = [] # ๊ฐ ์ผ์์ ๊ฑฐ๋ฆฌ ์ฐจ์ด ์ ์ฅ
N = int(input())
K = int(input())
sensorList = [int(x) for x in input().split()]
if K >= N:
print(0)
exit()
sensorList.sort() # ์ผ์ ์์น ์ ๋ ฌ
for i in range(1, N):
diffList.append(sensorList[i] - sensorList[i - 1])
for _ in range(K - 1):
diffList[diffList.index(max(diffList))] = 0
print(sum(diffList))
์ฝ๋ ์ค๋ช
sensorList.sort() # ์ผ์ ์์น ์ ๋ ฌ
for i in range(1, N):
diffList.append(sensorList[i] - sensorList[i - 1])
์ผ์๋ค์ ๊ฑฐ๋ฆฌ์ฐจ๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ๋จผ์ ์ ๋ ฌํ๊ณ ๊ฐ ์ผ์๋ค์ ๊ฑฐ๋ฆฌ์ฐจ๋ฅผ ๊ณ์ฐํด ์ค๋ค.
for _ in range(K - 1):
diffList[diffList.index(max(diffList))] = 0
print(sum(diffList))
๊ฑฐ๋ฆฌ์ฐจ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋๋ ๊ฒ๋ถํฐ K - 1 ๋ฒ ์ ๊ฑฐํด ์ค๋ค.
'๐งฉ Problem Solving > [๋ฐฑ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 7579 ์ฑ (python ํ์ด์ฌ) (0) | 2024.03.28 |
---|---|
[๋ฐฑ์ค] 4179 ๋ถ! (python ํ์ด์ฌ) (0) | 2024.03.28 |
[๋ฐฑ์ค] 16918 ๋ด๋ฒ๋งจ (python ํ์ด์ฌ) (0) | 2024.03.23 |
[๋ฐฑ์ค] 1697 ์จ๋ฐ๊ผญ์ง (python ํ์ด์ฌ) (0) | 2024.03.22 |
[๋ฐฑ์ค] 15666 N๊ณผ M 12 (python ํ์ด์ฌ) (0) | 2024.03.21 |