728x90
https://leetcode.com/problems/3sum/
1. 시간초과난 브루트 포스 풀이 ㅋㅋ
- -10^5 <= nums[i] <= 10^5
그렇다 .. 주어지는 num 길이가 이미 10^5인데 (최대) N^3 짜리 브루트 포스로 하면 시간초과가 난다
하지만..이렇게 풀면 쉬운걸
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
result = []
n = len(nums)
for i in range(0, n-2):
for j in range(i+1, n-1):
for k in range(j+1, n):
if nums[i] + nums[j] + nums[k] == 0:
temp = [nums[i], nums[j], nums[k]]
temp.sort()
if temp not in result:
result.append(temp)
return result
배열을 정렬한 후 , 중복되어 검사하는 pair를 제거할 수 있도록
if i > 0 and nums[i] == nums[i-1] 조건문을 각각의 for문에 넣어주었더니 통과했다
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
result = []
n = len(nums)
nums.sort()
for i in range(0, n-2):
if i > 0 and nums[i] == nums[i-1]:
continue
for j in range(i+1, n-1):
if j > i+1 and nums[j] == nums[j-1]:
continue
for k in range(j+1, n):
if k > j+1 and nums[k] == nums[k-1]:
continue
if nums[i] + nums[j] + nums[k] == 0:
result.append([nums[i], nums[j], nums[k]])
return result
728x90
'Algorithm (PS)' 카테고리의 다른 글
[카카오] 비밀지도 Python 풀이 (1) | 2022.09.22 |
---|---|
[백준] 7795 Python 풀이 (1) | 2022.09.21 |
백준 21610 마법사 상어와 비바라기 (python) (0) | 2022.09.19 |
[백준] 1935 후위표기식 2 in Python (0) | 2022.09.19 |
정보처리기사/실기 - 보안 약점 (0) | 2022.09.19 |