"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript의 SET(초보자를 위한 튜토리얼)

JavaScript의 SET(초보자를 위한 튜토리얼)

2024-11-04에 게시됨
검색:845

SET in JavaScript (Tutorial for Beginners)

안녕하세요,

고유한 값을 저장하고, 값을 삽입하고, 전체 값 수를 찾고, 값을 삭제할 수 있는 데이터 구조를 찾고 계십니까? 이에 대한 완벽한 선택은 세트입니다. 많은 프로그래밍 언어에는 내장된 Set 데이터 구조가 포함되어 있으며 JavaScript도 예외는 아닙니다. 세트의 작동 방식에 대해 더 자세히 살펴보겠습니다.

설정이란 무엇입니까?
세트는 기본 값이든 객체 참조이든 모든 유형의 고유한 값을 저장할 수 있는 데이터 구조입니다. 이 세트는 O(1) 시간 복잡도로 삽입, 삭제, 업데이트 및 크기 조정 작업을 허용합니다. 세트를 더 빠르고 효율적으로 만듭니다.

세트는 빠른 액세스 시간을 제공하도록 설계되었습니다. 일반적으로 각 항목을 하나씩 확인하는 것보다 항목을 더 빠르게 검색하는 방식으로 구현됩니다. 일반적인 구현은 해시 테이블(O(1) 조회) 또는 검색 트리(O(log(N)) 조회)일 수 있습니다.

핵심 사항

  • 빠른 액세스: 세트는 요소에 대한 빠른 액세스를 제공합니다.
  • 구현: 일반적으로 해시 테이블이나 검색 트리를 사용하여 구현됩니다.
  • 조회 시간: 평균 조회 시간은 O(N)보다 낫습니다. 종종 O(1) 또는 O(log(N)).

기본 방법

  1. add : 설정할 요소를 추가합니다. 요소가 세트에 있으면 아무 작업도 수행하지 않습니다.
  2. has : 요소가 세트에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
  3. size : 세트의 크기를 반환합니다.
  4. delete : 세트에서 요소를 제거합니다.
  5. keys : JavaScript Set의 .keys() 메서드는 삽입된 순서대로 Set의 값을 포함하는 새로운 반복자 객체를 반환합니다.


// 1. Create a new Set and use the .add() method to add elements
const mySet = new Set();
mySet.add(10);
mySet.add(20);
mySet.add(30);

console.log(mySet); // Output: Set { 10, 20, 30 }

// 2. Check if the Set has a specific element using .has() method
console.log(mySet.has(20)); // Output: true
console.log(mySet.has(40)); // Output: false

// 3. Delete an element from the Set using .delete() method
mySet.delete(20);
console.log(mySet); // Output: Set { 10, 30 }

// 4. Iterate over the Set using .keys() method
// In Sets, .keys() and .values() do the same thing
for (const key of mySet.keys()) {
  console.log(key);
}
// Output:
// 10
// 30

// 5. Get the size of the Set using .size property
console.log(mySet.size); // Output: 2


리트코드 문제가 있는 설정의 예:

3. 반복되는 문자가 없는 가장 긴 부분 문자열

문자열 s가 주어졌을 때, 반복되는 문자가 없는 가장 긴 부분 문자열의 길이를 찾습니다.

해결책

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let set = new Set();
    let ans = 0;
    let s_index = 0;
    for (let i = 0; i 



설명:
lengthOfLongestSubstring 함수는 Set과 함께 슬라이딩 윈도우 기술을 사용하여 문자 반복 없이 가장 긴 부분 문자열을 찾습니다:

  • 창 확장: 캐릭터가 아직 없으면 세트에 캐릭터를 추가합니다.
  • 창 축소: 중복 항목이 발견되면 창 시작 부분에서 문자를 제거하여 창 크기를 조정합니다.
  • 길이 업데이트: 고유 문자가 포함된 하위 문자열의 최대 길이를 추적합니다.
  • 이 접근 방식은 각 문자를 최대 두 번 처리하여 효율적인 O(N) 시간 복잡도를 보장합니다.

그렇습니다. 의심스러운 점이나 제안 사항 또는 기타 사항이 있으면 언제든지 의견을 추가해 주세요.

출처 :
MDN(설정)

릴리스 선언문 이 글은 https://dev.to/yashrajxdev/set-data-structure-in-javascript-2e4i?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3