하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능
[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일차)
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/
문제 설명
문제 풀이 방법
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))
증빙
여담
집가고싶다 아니 수영가고싶다