알고리즘/리트코드
3071. Minimum Operations to Write the Letter Y on a Grid
jinmc
2024. 3. 5. 16:32
반응형
콘테스트 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))
반응형