2024년 5월 9일 알고리즘 문제풀이
문제
난이도
Easy
코드
1차시도
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution:
def twoSum(self, nums, target: int):
board = dict()
idx_arr = dict()
answer = []
for i in range(len(nums)):
if nums[i] not in board:
board[nums[i]] = 1
else:
board[nums[i]] += 1
for i in range(len(nums)):
if nums[i] not in idx_arr:
idx_arr[nums[i]] = [i]
else:
idx_arr[nums[i]].append(i)
for i in range(-target,target+1,1):
if i in board and target-i in board:
if i != target-i:
answer = [idx_arr[i][0],idx_arr[target-i][0]]
break
else:
if board[i] >= 2:
answer = [idx_arr[i][0], idx_arr[i][1]]
break
return answer
다 조회하면 시간이 초과될 것 같아, dictionary를 이용하려 했다. target이 0일 떈 조합을 찾는 반복문이 제대로 작동하지 않아 오답처리되었다.
1
2
3
4
5
6
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(len(nums)):
if i != j and nums[i] + nums[j] == target:
return [i,j]
바로 맞췄다. 괜히 어렵게 풀었나..?