Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 | 29 | 30 |
31 |
Tags
- binary search
- binary tree
- linked list
- hash table
- 중간
- backtracking
- math
- Depth-first Search
- matrix
- Python
- 문자열
- Medium
- Binary
- string
- leetcode
- 재귀
- DP
- tree
- dfs
- Array
- 쉬움
- 리트코드
- easy
- 이진트리
- two pointers
- recursive
- HashTable
- list
- 미디움
- sorting
Archives
- Today
- Total
부부의 코딩 성장 일기
LeetCode 217(Contains Duplicate, Python) 본문
1. 문제 링크
Contains Duplicate - LeetCode
Can you solve this real interview question? Contains Duplicate - Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct. Example 1: Input: nums = [1,2,3,1] Output: true Ex
leetcode.com
2. 문제 설명
- 오랜만에 쉬어갈 겸 easy 문제를 풀었다.
- integer로 구성된 array nums가 주어졌을 때, 특정 값이 적어도 두번 등장하면 true를, 모든 element가 distinct하면 false 반환
- 예시1) nums = [1,2,3,1]이면 output = true 반환
- 예시2) nums = [1,2,3,4]이면 output = false 반환
- 예시3) nums = [1,1,1,3,3,4,3,2,4,2]이면 output = true 반환
3. 처음 풀이
- easy문제여서 어떻게 접근해도 time limit이 걸리진 않았다.
- 가장 처음에 푼 풀이는, 단순히 distinct하게 바꾼 set의 원소개수와 nums의 개수가 같지 않은지를 반환
- 같지 않으면, True 반환, 같으면 False 반환
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
return len(nums) != len(list(set(nums)))
- 그 다음에는 sort를 시킨 후에, nums[i] == nums[i+1]이 등장하면 True를 반환하도록 코드를 짰다.
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
nums.sort()
for i in range(len(nums)-1):
if nums[i] == nums[i+1]:
return True
return False
4. 다른 풀이
- num_set이라는 빈 집합 set()를 만든 뒤, for 문을 돌리면서, 현재의 값이 이미 num_set에 존재하면 True, 아니면 False를 반환
- 이렇게 하면 메모리는 조금 들지만, sort()처리를 안하므로 좀 더 효율적
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
num_set = set()
for num in nums:
if num in num_set:
return True
num_set.add(num)
return False
'Algorithm > LeetCode' 카테고리의 다른 글
LeetCode 96(Unique Binary Search Trees, Python) (0) | 2024.02.08 |
---|---|
LeetCode 95(Unique Binary Search Trees II, Python) (1) | 2024.02.07 |
LeetCode 93(Restore IP Addresses, Python) (1) | 2024.02.04 |
LeetCode 92(Reverse Linked List II, Python) (1) | 2024.02.03 |
LeetCode 206(Reverse Linked List, Python) (0) | 2024.02.02 |