본문 바로가기
개발/알고리즘

[leetcode] week1 - single number

by ny0011 2020. 4. 10.
반응형

https://leetcode.com/explore/challenge/card/30-day-leetcoding-challenge/528/week-1/3283/

 

Account Login - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

풀이

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]   

7초 씩이나 걸리는 bad code ㅜㅜ

'개발 > 알고리즘' 카테고리의 다른 글

파이썬 알고리즘 꿀팁  (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

댓글