Bleeding edge

[LeetCode] 136. Single Number - 자바스크립트 0616 본문

코딩테스트 공부

[LeetCode] 136. Single Number - 자바스크립트 0616

codevil 2022. 6. 16. 10:39

https://leetcode.com/problems/single-number/

 

Single Number - 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

주어진 숫자가 1번 주어진 싱글 넘버를 리턴해라인 문제였다.

 이 문제는 다양한 문자가 주어진다고 생각하고, 삭제를 쉽게할 수 있게 map을 사용하였다.

1. map을 만든다

    const evenCheck = new Map()

2. 주어진 num를 이용하여 for문을 만든다.

    for (let i = 0; i < nums.length; i++) {
    }

3. evenCheck에 nums[i]가 있다면 delete, 없다면 set을 한다

    for (let i = 0; i < nums.length; i++) {
        if (!evenCheck.get(nums[i])) {
            evenCheck.set(nums[i], true)
        } else {
            evenCheck.delete(nums[i])
        }
    }

4. 이제 evenCheck에는 single Number만 남아있다. 이 evenCheck를 Array.from으로 Array로 만들고 0번째의 0번째를 return 하면 된다.

    const answer = Array.from(evenCheck)
    return answer[0][0]

전체 풀이

var singleNumber = function (nums) {
    const evenCheck = new Map()
    for (let i = 0; i < nums.length; i++) {
        if (!evenCheck.get(nums[i])) {
            evenCheck.set(nums[i], true)
        } else {
            evenCheck.delete(nums[i])
        }
    }
    const answer = Array.from(evenCheck)
    return answer[0][0]
};