Skip to content

Commit 40ae4ff

Browse files
Merge pull request #1949 from CodingTestStudy2/최원준
[최원준] Day01
2 parents ae4a916 + 863d6f7 commit 40ae4ff

2 files changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
총합을 구하고 인덱스를 옮겨가며 차감 후 계산
6+
7+
2. 시간복잡도 :
8+
O(n + n)
9+
10+
3. 자료구조/알고리즘 :
11+
-
12+
13+
'''
14+
class Solution:
15+
def dominantIndices(self, nums: List[int]) -> int:
16+
n = len(nums)
17+
total = sum(nums)
18+
count = n
19+
20+
ans = 0
21+
for i in range(n-1):
22+
total -= nums[i]
23+
count -= 1
24+
ans = ans + 1 if nums[i] > total/count else ans
25+
return ans
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
선택할 수 있는 돌의 길이를 1부터 계산.
6+
반복 계산을 하지 않기 위해 dp 사용.
7+
l~r에서 가장 효율적으로 돌을 가져가는 방법은 l + (l+1 ~ r) 또는 (l~r-1) + r
8+
9+
2. 시간복잡도 :
10+
O(n + n * n)
11+
12+
3. 자료구조/알고리즘 :
13+
dp
14+
15+
'''
16+
class Solution:
17+
def stoneGame(self, piles: List[int]) -> bool:
18+
n = len(piles)
19+
20+
dp = [[0] * n for _ in range(n)]
21+
22+
for i in range(n):
23+
dp[i][i] = piles[i]
24+
25+
26+
for length in range(2, n+1):
27+
for lp in range(n - length + 1):
28+
rp = lp + length - 1
29+
30+
left = piles[lp] - dp[lp+1][rp]
31+
right = piles[rp] - dp[lp][rp-1]
32+
dp[lp][rp] = max(left, right)
33+
34+
return dp[0][n-1] > 0

0 commit comments

Comments
 (0)