Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions leetcode3/최원준/3833. Count Dominant Indices.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#

'''
1. 아이디어 :
총합을 구하고 인덱스를 옮겨가며 차감 후 계산

2. 시간복잡도 :
O(n + n)

3. 자료구조/알고리즘 :
-

'''
class Solution:
def dominantIndices(self, nums: List[int]) -> int:
n = len(nums)
total = sum(nums)
count = n

ans = 0
for i in range(n-1):
total -= nums[i]
count -= 1
ans = ans + 1 if nums[i] > total/count else ans
return ans
34 changes: 34 additions & 0 deletions leetcode3/최원준/877. Stone Game.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#

'''
1. 아이디어 :
선택할 수 있는 돌의 길이를 1부터 계산.
반복 계산을 하지 않기 위해 dp 사용.
l~r에서 가장 효율적으로 돌을 가져가는 방법은 l + (l+1 ~ r) 또는 (l~r-1) + r

2. 시간복잡도 :
O(n + n * n)

3. 자료구조/알고리즘 :
dp

'''
class Solution:
def stoneGame(self, piles: List[int]) -> bool:
n = len(piles)

dp = [[0] * n for _ in range(n)]

for i in range(n):
dp[i][i] = piles[i]


for length in range(2, n+1):
for lp in range(n - length + 1):
rp = lp + length - 1

left = piles[lp] - dp[lp+1][rp]
right = piles[rp] - dp[lp][rp-1]
dp[lp][rp] = max(left, right)

return dp[0][n-1] > 0