leetcode

260. Single Number III

2023. 4. 20. 16:06
목차
  1. ⚡문제정보
  2. 🔍접근방법
  3. 😑나의 풀이
  4. 😑다른 사람의 풀이

⚡문제정보

주어지는 입력에서 대부분의 요소들은 단 2번 등장하지만

드물게 한번만 등장하는 요소들이 있다고 합니다.

이 한번만 등장하는 요소들을 찾아서 배열로 만들어 반환하는 것이 조건입니다.

보통 2번만 등장하니까 객체형태로 카운팅을 해주면서 카운팅한 값이 2가 되는 순간 딜리트해주면되겠네요


🔍접근방법

1. map 자료구조를 생성하고 주어진 배열을 순회한다.
2. 배열을 순회하며 등장횟수를 카운팅한다.
3. 등장횟수가 2가 된 경우 map에서 자료를 지워버린다.
4. 남은 값의 key만 반환하면 끝

😑나의 풀이

var singleNumber = function(nums) {
    const map = new Map()
    for(let i = 0 ; i < nums.length; i++) {
        map.set(nums[i] , (map.get(nums[i])??0)+1 )
        if(map.get(nums[i])>1) map.delete(nums[i])
    }
    return [...map.keys()]
};

간단하게 순회하면서 구현하면 끝입니다.


😑다른 사람의 풀이

var singleNumber = function(nums) {
    if(nums.length === 2){
        return nums
    }
    const res = new Array(2).fill(0)
    let xor1 = 0
    for(let i=0; i<nums.length; i++){
        xor1 ^=nums[i]
    }
    
    const lowestBit = xor1 & (-xor1) // to find leftmost set bit
    for(let i=0; i<nums.length; i++){
        if((lowestBit & nums[i]) === 0){
            res[0] ^= nums[i]
        } else {
            res[1] ^=nums[i]
        }
    }
    return res
};

map 자료구조를 사용하지않아서 그런지

메모리효율이 더 좋은 풀이였습니다.

무슨뜻인지는 몰?루

반응형
저작자표시 비영리

'leetcode' 카테고리의 다른 글

1302. Deepest Leaves Sum  (0) 2023.04.19
169. Majority Element  (0) 2023.03.07
2341. Maximum Number of Pairs in Array  (1) 2023.02.03
2442. Count Number of Distinct Integers After Reverse Operations Javascript  (0) 2023.01.21
2491. Divide Players Into Teams of Equal Skill Javascript  (0) 2023.01.21
  1. ⚡문제정보
  2. 🔍접근방법
  3. 😑나의 풀이
  4. 😑다른 사람의 풀이
'leetcode' 카테고리의 다른 글
  • 1302. Deepest Leaves Sum
  • 169. Majority Element
  • 2341. Maximum Number of Pairs in Array
  • 2442. Count Number of Distinct Integers After Reverse Operations Javascript
냠냠맨
냠냠맨
프론트엔드 개발 전반을 다루는 기술 블로그입니다.
냠냠맨
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

공지사항

인기 글

태그

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

최근 댓글

최근 글

hELLO · Designed By 정상우.
냠냠맨
260. Single Number III
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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