File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments