[LeetCode] 1551. Minimum Operations to Make Array Equal
Updated:
1551. Minimum Operations to Make Array Equal
n ์ด ์ฃผ์ด์ง๋ฉด ์ดํญ์ 1์ด๊ณ ๋ฑ์ฐจ๋ 2์ธ ๋ฑ์ฐจ์์ด์ n ์ ๊ธธ์ด ๋งํผ ๋ง๋ ๋ค.
์ด๋ index ๋ ๊ฐ๋ฅผ ๊ณจ๋ผ arr[x] -= 1, arr[y] += 1 ์ ๋ฐ๋ณต ํด ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ๊ฐ๊ฒ ๋ง๋ค๋ฉด ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ ๊ฐ์ด ๊ฐ์ ์ง ๋, ๊ทธ ๊ฐ์ ๊ฐ์ ์ด๋ป๊ฒ ๊ตฌํ๋ฉด ๋ ๊น ? ๋ฐ๋ก ๋ฐฐ์ด์ ํ๊ท ๊ฐ์ด ๊ทธ ๊ฐ์ด ๋๋ค.
[1, 3, 5, 7, 9] ๊ฐ ์ฃผ์ด์ง๋ค๋ฉด ๋ํ๊ธฐ 1, ๋นผ๊ธฐ 1 ์ ํตํด ๋ชจ๋ ๊ฐ์ ํ๊ท ๊ฐ์ธ 5๋ก ๋ง๋ค๋ฉด ๋๋ค.
๊ฒฐ๊ตญ ๋ฐฐ์ด ์ค์์ ํ๊ท ๊ฐ์์ ํ๊ท ๊ฐ ๋ณด๋ค ์์ ๊ฐ์ ๋บ ์๋ฅผ ๋ชจ๋ ๋ํ๋ฉด ๋ต์ด ๋๋ค.
์ ๋ฐฐ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ (5 - 1) + (5 - 3) = 6 ์ด ๋๋ค.
class Solution:
def minOperations(self, n: int) -> int:
arr = [(2 * i) + 1 for i in range(n)]
goal_num = n
answer = 0
for num in arr:
if num < goal_num:
answer += goal_num - num
else:
break
return answer
test = Solution()
n = 5
print(test.minOperations(n))
Leave a comment