[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (150일차)
[4코1파] 2023.01.13~ (141일차)
[1스4코1파] 2023.04.12~ (52일차)
[1스4코2파] 2023.05.03 ~ (31일차)

Today :

2023.06.02 [150일차]
LeetCode Patterns
448. Find All Numbers Disappeared in an Array
https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/

448. Find All Numbers Disappeared in an Array

문제 설명

문제 풀이 방법

set 이용해서 클리어
밑에 보니까 시간 복잡도 O(n) 으로 풀라고 되어 있는 거 같은데,
이것도 신기하게 다른 새럼꺼 코드 보니까

예뿌게 풀었더라

nums 리스트에 있는 elements 들을 abs 절대값을 씌워준 abs_val를
인덱스로 찾아서 조건으로 양수일 경우에만 그 값에 -1을 곱해줌.. (한번 스쳐지나갔는지 확인하는 용도)
한바퀴 돌면 시간복잡도는 O(N) 이고,
그 안에서 선택받지 못한 인덱스는 값이 없는 것이므로 그 값을 return 해주면됨
그대신 0부터 시작하는게 아니라 인덱스 값에 +1을 더해서 return 해줌

천천히 코드 읽어보면 내가 무슨말 하는 줄 알것임

내 코드

class Solution:
    def findDisappearedNumbers(self, nums: list[int]) -> list[int]:
        return list(set([_ for _ in range(1, len(nums)+1)]).difference(nums))

증빙

여담

집가고싶다 아니 수영가고싶다

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글