본문 바로가기

전체 글16

배열과 해시 대표 문제 풀기 이번 포스트에서는 leetcode에 있는 Array 와 Hashing의 대표 문제들을 풀어보겠습니다. 문제풀이는 편의상 C++로 진행하겠습니다. 1. Containers Duplicates [Easy] Contains Duplicate - 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 풀이 class Solution { public: bool containsDuplicate(vector& nums) { // 이전에 나온 값을 저장하기 위해서 HashMap을 준비.. 2022. 10. 30.
[정렬] Merge Sort 개념 정리 및 관련 문제 풀기 이번 포스트에서는 Merge Sort에 대한 개념에 대해 알아보기 관련 문제를 풀어보겠습니다. 개념 정리 Merge Sort는 번역하면 병합 정렬이라고 합니다. Merge Sort는 대표적인 Divide & Conquer 알고리즘입니다. 즉 분할을 해서 작은 사이즈를 먼저 해결하고 나서 합치는 것을 의미합니다. 이 전략이 좋은 이유는 처음부터 많은 양의 비교를 하지 않고 작은 단위부터 정렬된 배열들을 만들어서 합칠때 두 정렬된 배열을 비교하면 되기 때문입니다. 정렬된 배열을 비교하는 것은 일반적인 정렬보다 간단합니다. 왜냐하면 각 배열이 이미 정렬되어 있기 때문에 가장 앞에 있는 것들만 비교하면 됩니다. 예를 들어서 배열 [1, 3, 5, 7] 과 [2, 4, 6, 8] 을 정렬한다고 가정하겠습니다. 두.. 2022. 10. 26.
[정렬] Insertion Sort(삽입 정렬) 기본 개념 및 관련 문제 풀기! 이번 포스트에서는 정렬 알고리즘 중에 하나인 Insertion Sort에 대해서 알아보겠습니다. 개념 소개 Insertion Sort는 번역하면 삽입 정렬이라고 합니다. 삽입 정렬은 배열을 처음부터 순회하면서 해당 원소가 들어가야할 자리를 찾아서 삽입시키는 방법을 의미합니다. 삽입 정렬에서 중요한 것은 바로 자신의 앞 배열이 모두 정렬되어 있다는 것입니다. 예를 들어서 현재 삽입해야할 원소가 3번째 원소라면, 반드시 1번과 2번 원소는 정렬이 되어 있어야합니다. 그래야만 3번째 원소가 어디에 들어가야하는지를 찾을 수 있습니다. 예시를 함께 보겠습니다. 배열 [5, 4, 2, 3, 1] 이 있다고 가정해보겠습니다. 첫번째 원소인 5는 앞에 원소가 없이 자기 자신뿐이므로 그 자체로 정렬이 되어있다고 볼 수 .. 2022. 10. 26.
Two Sum 이번에는 배열과 HashMap의 대표적인 문제인 Two Sum 문제를 풀어보겠습니다. 문제 난이도는 쉬운 편에 속하지만 다양한 방법으로 풀 수 있는 방법이 있기 때문에 정확하게 이해하시는 것이 좋습니다. 문제 https://leetcode.com/problems/two-sum/ Two Sum - 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 위 문제는 배열을 순회하는 대표적인 문제입니다. 서로 다른 두 원소를 더해서 target이 나오는 경우를 찾으면 됩니다. .. 2022. 10. 23.