728x90
Problem
Solution
array
n*n 2차 배열에서 중복된 값, 존재하지 않는 값을 찾는 문제.
hash를 사용해서 frequency를 구한다음에 정답을 구해도되고
나는 1~n*n까지 연속된 숫자이므로 visited 를 사용해서 이미 방문했는지를 체크하도록 했다.
Code
class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
answer = []
n = len(grid)
visited = [0] * (n*n + 1)
twice_num = 0
missing_num = 0
for i in range(n):
for j in range(n):
current_val = grid[i][j]
if visited[current_val] == 1:
twice_num = current_val
else:
visited[current_val] = 1
for i in range(1, len(visited)):
if visited[i] == 0:
missing_num = i
answer = [twice_num, missing_num]
return answer
Complexity
Time Complexity
2중 for문을 순회하므로 O(N^2)
Space Complexity
visited 리스트가 O(n^2)을 차지하는 가장 큰 공간이므로,
최종적으로 공간 복잡도는 O(n^2)이다.
728x90
'코딩 테스트' 카테고리의 다른 글
[LeetCode] 3208. Alternating Groups II (Python) (0) | 2025.03.09 |
---|---|
[LeetCode] 2379. Minimum Recolors to Get K Consecutive Black Blocks (Python) (0) | 2025.03.08 |
[LeetCode] 1092. Shortest Common Supersequence (Python) (0) | 2025.02.28 |
[LeetCode] 873. Length of Longest Fibonacci Subsequence (Python) (0) | 2025.02.27 |
[LeetCode] Maximum Absolute Sum of any SubArray (Python) (0) | 2025.02.26 |
댓글