알고리즘

    [LeetCode] 리트코드 49. Group Anagrams(JS)

    문제 Group Anagrams - 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 - 난이도 Medium - 관련 주제: Hast Table, String 문제 설명 strs 라는 string들로 이루어진 배열이 주어질 때 anagram이 되는 것들을 함께 grouping 하는 문제. 정답은 어떤 순서에 상관없이 return 해도 된다. Anagram은 일반적으로 기존의 단어들을 정확히 한번만 모두 사용하여 해당 단어들을 재배열해서 다른 단어 또는 문구를 만든 ..

    [알고리즘 스터디] 정렬(Sorting) 종류들 - 1

    정렬(Sort)이란? 정렬은 말 그대로 특정하게 정한 임의의 순서대로(알파벳 순, 숫자 순)으로 어떠한 배열/리스트를 나열하는 것이다. 정렬은 여러 응용분야에 사용되는 매우 기본적인 문제이다. 오름차순 정렬 [0, 1, ,2, 3, ...] 정렬 종류 정렬의 종류에는 크게 간단한 정렬 알고리즘인 선택(Select)/버블(Bubble)/삽입(Insert) 정렬이 존재하고, 고급 정렬 알고리즘에는 분할과 정복 알고리즘인 병합(merge)/퀵(quick) 정렬과 힙(heap) 정렬 그리고 기수(Radix) 정렬이 존재한다. 정렬 알고리즘 분류 1. Stable 정렬 알고리즘 정렬할 자료들(입력 자료) 중 동일한 두 자료의 상대적인 위치가 정렬 후에도 유지되는 정렬 알고리즘 2. In-place 정렬 알고리즘 ..

    [알고리즘 스터디] Binary Search(이진탐색) 알고리즘

    Binary Search 알고리즘이란? 정렬된 배열의 탐색에 적합한 알고리즘으로, 정렬된 배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지 여부를 알아내어 탐색의 범위를 반으로 줄여가는 방법 예) 10억 명중에서 특정한 이름 검색 Binary Search(이진 탐색): 단지 30번 비교 필요 Sequence Search(순차 탐색): 평균 5억 번의 비교 필요 특징 모든 것을 방문하여 검색하는 Sequence Search 보다 효율적인 알고리즘 오름차순으로 정렬이 되어 있어야 하는 것이 조건 → 정렬된 리스트or배열 Binary Search 알고리즘 작동 방법 Binary Search 알고리즘 구현 방법 정렬된 배열의 양쪽 끝 값을 설정(left, right) 가..