반응형
콘테스트 3번 문제로 나온 문제인데,
이 문제도 그렇게 어려운 편은 아니었던 것 같습니다.
Y자의 위에까지부분을 iterate하고, 그 다음 부분을 iterate 합니다.
가짓수가 그렇게 많지는 않기 때문에 모든 경우의 수를 다 해버렸습니다.
나중에 결과 보니깐 시간 복잡도 측면에서는 좀 안좋게 나왔네요.
class Solution:
def minimumOperationsToWriteY(self, grid: List[List[int]]) -> int:
n = len(grid)
def ttry(x, y):
count = 0
for i in range((n // 2)):
for j in range(n):
if i == j:
if grid[i][j] != x:
count += 1
elif n-j-1 == i:
if grid[i][j] != x:
count += 1
else:
if grid[i][j] != y:
count += 1
for i in range((n // 2), n):
for j in range(n):
if j == (n // 2):
if grid[i][j] != x:
count += 1
else:
if grid[i][j] != y:
count += 1
# print(x, y, count)
return count
return min(ttry(1, 0), ttry(1, 2), ttry(2, 0), ttry(2,1), ttry(0,1), ttry(0,2))
반응형
'알고리즘 > 리트코드' 카테고리의 다른 글
3070. Count Submatrices with Top-Left Element and Sum Less Than k (0) | 2024.03.05 |
---|---|
Leetcode Weekly Contest 311 (2022.09.18) (2413~2416) (0) | 2022.09.18 |
Weekly Contest 305. (2367~2370) (list, graph, dp) (0) | 2022.08.07 |
리트코드 2337. Move Pieces to Obtain a String (Python3, Medium) - 인덱스와 직관 활용! (0) | 2022.07.10 |