반응형
https://leetcode.com/explore/challenge/card/30-day-leetcoding-challenge/528/week-1/3283/
풀이
1. nums의 첫번째 원소를 리스트 L에 넣는다.
2. nums의 두번째 원소부터 마지막 원소까지 리스트 L과 비교를 한다.
-> L에 있는 원소들과 nums[i]가 같으면 L의 원소를 제거한다. 비교를 멈춘다
3. 원소가 제거되지 않았으면 L에 nums[i]를 추가한다.
4. 마지막에 남은 check[0]이 single number다.
코드
class Solution:
def singleNumber(self, nums: List[int]) -> int:
check = []
check.append(nums[0])
for i in range(1,len(nums)):
isSame = False
for j in range(len(check)):
if nums[i] == check[j]:
check.remove(nums[i])
isSame = True
break
if isSame == False:
check.append(nums[i])
return check[0]
'개발 > 알고리즘' 카테고리의 다른 글
파이썬 알고리즘 꿀팁 (0) | 2020.12.09 |
---|---|
[leetcode] week1 - Move Zeroes (0) | 2020.04.13 |
[leetcode] week1 - Maximum Subarray (0) | 2020.04.12 |
[leetcode] week1 - Happy Number (0) | 2020.04.11 |
[프로그래머스] K번째 수 (0) | 2020.04.08 |
댓글