TEAM 알고싶다/성공 문제

[LeetCode] 41. First Missing Positive (처음 누락된 양수?)

서크호 2022. 6. 13. 00:21

📄 문제

- 정렬되지 않은 정수 배열 nums가 주어지면 누락된 가장 작은 양의 정수를 반환해라!

- 주의점 : 누락된 값이 없으면 1 return, 음수는 신경 안쓰는 듯하다.

문제 사진


📝 나의 풀이

let firstMissingPositive = function (nums) {
  const setBox = new Set(nums);
  let targetNum = 1;
  
  while(setBox.has(targetNum)) {
    targetNum++
  }
  return targetNum
};

오 하드도 풀어보라네!


⌨ 접근법

1. 논리가 간단하다. 새 배열 안에 가장 작은 양의 정수인 1(targetNum) 부터 있는지 없는지 검사한다.

2. 있으면 1씩 올려서 다시 검사, 없으면  targetNum return

3. 순서도 상관없고 보기 편하게 하기 위해서 Set 함수를 사용해서 집합객체로 만들어서 검사한다.


😂 아쉬운 점

- 너무 어렵게 생각해서 시간이 오래 걸린 것 같다. 문제의 Hard 표시를 보고 무서워서 거창한 논리를 세워보려고 하다가 시간을 잡아먹어서 잠을 늦게 자게 되었다 ㅎㅎ

 

- 나름 심플하게 잘 짠 것 같은데 효율성이 생각보다 좋지 못해서 다양한 방법을 더 고민해보는 시간을 틈틈히 가져야겠다.


📚 문제 링크

https://leetcode.com/problems/first-missing-positive/

 

First Missing Positive - 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