leetcode

448. Find All Numbers Disappeared in an Array

2022. 11. 17. 15:17

문제링크

https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/
 

Find All Numbers Disappeared in an Array - 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

문제정보
정수로 이루어진 배열 nums가 매개변수로 주어집니다.
nums에는 1부터 nums.length만큼의 범위의 숫자들이 모두 들어가있었어야 했습니다.
nums의 요소 중 빠져있는 숫자들을 모은 배열을 return 하시오.
 
대충 이런 문제입니다.
example
Input: nums = [4,3,2,7,8,2,3,1]
Output: [5,6]

이런식으로 답이 return 되어야 하는 문제인데

저는 indexOf를 이용해서 서칭하는 방법을 사용해봤어요

 


var findDisappearedNumbers = function(nums) {
    let answer = [];
    for(i = 1; i <= nums.length; i++) {
        if(nums.indexOf(i) == -1) {
            answer.push(i);
        }
    }
    return answer
};

어차피 배열은 정수로 이루어져있고 순서대로 찾아나가는데 없는 숫자를 넣어주는거니까

indexOf를 이용해서 만약 반환값이 -1이라면 그 숫자가 없는것이니

answer 배열에 i를 push해줬습니다.

 

근데 이렇게 답을 찾으면 시간제한에 아슬아슬하게 통과하는 코드가 되어버립니다.

그래서 더 효율적인 코드가 있지 않을까하고 다른사람들의 풀이를 찾아보는데

 

이해하기 쉬우면서 제 코드보다 효율이 좋은 코드를 찾아 공유드립니다.

 


다른사람의 풀이

const findDisappearedNumbers = nums => {
    const set = new Set(nums);    
    const newArr = [];
    
    for (let i = 1; i <= nums.length; i++) {
		if(!set.has(i)){
			newArr.push(i);
		}
    }
    
    return newArr;
};

nums로 이루어진 set 객체를 선언해줍니다.

set 객체는 동일한 값을 중복해 포함하지 않기 때문에 중복값들을 모두 삭제해줄 수 있죠!

.has()는 set 객체 안에 value가 존재하는지 여부를 판별하고 값이 존재하는지에 따라 true 혹은 false를 반환하는 함수입니다.

 

has를 이용한 탐색이 훨씬 효율이 좋네요

 

반응형
저작자표시 비영리 (새창열림)

'leetcode' 카테고리의 다른 글

77. Combinations javascript leetcode  (0) 2022.11.19
46. Permutation  (0) 2022.11.18
39. Combination Sum javascript leetcode  (0) 2022.11.16
1365. How Many Numbers Are Smaller Than the Current Number javascript leetcode  (0) 2022.11.15
7. Reverse Integer Javascript Leetcode  (0) 2022.11.14
'leetcode' 카테고리의 다른 글
  • 77. Combinations javascript leetcode
  • 46. Permutation
  • 39. Combination Sum javascript leetcode
  • 1365. How Many Numbers Are Smaller Than the Current Number javascript leetcode
냠냠맨
냠냠맨
프론트엔드 개발 전반을 다루는 기술 블로그입니다.
냠냠맨
React와 TypeScript를 좋아하는 개발자
냠냠맨
전체
오늘
어제
  • all category (433)
    • CMC (0)
    • best (11)
    • 년간회고 (1)
    • cheetsheet (15)
    • 프로젝트 회고 (3)
    • 서평 (3)
    • SEO Study (1)
    • 프로젝트 진행기 (10)
    • testcode (9)
    • yarnberry (7)
    • css (21)
    • typescript (15)
    • redux (7)
    • react (43)
    • Next.js (9)
    • Nestjs (3)
    • javascript (44)
    • programmers (67)
    • leetcode (41)
    • frontend (41)
    • backjoon (1)
    • Next.js Beta Docs 번역 (12)
    • TIL (15)
      • html (3)
    • Network (12)
      • 간단 정리 시리즈 (2)
      • 질답 준비 (0)
    • 자료구조와 알고리즘 (2)
    • CS (4)
      • OS (1)
    • 취업준비 (2)
    • zoom websocket (2)
    • talk (6)
    • 면접대비 (1)
    • 코드스테이츠 프론트 (5)
    • 간헐적 회고 (17)

블로그 메뉴

  • leetcode
  • programmers
  • javascript
  • html
  • css

공지사항

인기 글

태그

  • 테오의스프린트
  • 프론트엔드
  • frontend
  • border말풍선
  • 코드스테이츠 #프론트엔드
  • 개발자
  • CSS
  • 테오의스프린트17기
  • LeetCode
  • 개발
  • 주니어개발자
  • 말풍선
  • teosprint
  • JavaScript

최근 댓글

최근 글

hELLO · Designed By 정상우.
냠냠맨
448. Find All Numbers Disappeared in an Array
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.