README.MD
·
CS/Design Pattern
❒ Description해당 카테고리에서는 면접을 위한 CS 전공식 노트에서 언급하는 디자인패턴을 우선적으로 학습할 것이다. 이와 더불어 해드 퍼스트 디자인패턴도 함께 살펴가면서 부족한 내용을 보완,보충한다.그리고 과거 학습 과정에서 굉장히 두리뭉실하게 알고 있었던 부분을 확실히 이해하고 넘어가야 한다.  ❒ Rule공부를 하기 앞서 스스로 몇 가지 룰을 정했다.면접을 위한 CS 전공식 노트를 우선으로 한다.해드 퍼스트 디자인패턴에 있는 예제를 그대로 사용하기, 가능하면  스스로 직접 예시를 만든다.학습 끝에는 예상 면접 질문을 작성하고 그에 답변을 한다.
[LeetCode#21] Merge Two Sorted Lists
·
Algorithm/문제풀이
❒ Description제목Merge Two Sorted Lists링크https://leetcode.com/problems/merge-two-sorted-lists/description/자료구조선형 자료구조푼 날짜7/24     ❒ Solution1. Brute Force public static void main(String[] args) { // create Test Case ListNode node1_3 = new ListNode(4, null); ListNode node1_2 = new ListNode(2, node1_3); ListNode node1_1 = new ListNode(1, node1_2); ListNode node2_3 = new ListNode(4, nu..
[LeetCode#234] Palindrome Linked List
·
Algorithm/문제풀이
❒ Description제목Palindrome Linked List링크https://leetcode.com/problems/palindrome-linked-list/description/자료구조선형자료 구조 (연결 리스트)푼 날짜7/24    ❒ Solution1. Deque 자료구조를 사용한 풀이public static boolean solve(ListNode head) { Deque deque = new LinkedList(); ListNode node = head; while (node != null) { deque.add(node.val); node = node.next; } while (!deque.isEmpty() && deque.size()..
README.md
·
CS/Data Structure
❒ Description자료구조가 무엇이고, 어떤 것들이 있는지 큰 틀을 알아보자.   ❒ 자료구조란?    ❒ 선형자료 구조데이터 구조가 선형이라는 것은 데이터 구조를 구성하는 요소들이 서로 인접해순차적인 방식으로 정렬되어 있음을 뜻한다.1. 배열  2. 연결 리스트연결 리스트는 데이터 엘리먼트의 선형 집합이지만 데이터의 순서가 메모리에 물리적인 순서대로 저장되지 않는다.이는 순서대로 저장되는 배열과의 가장 큰 차이점으로, 대신 동적으로 새로운 노드를 삽입하거나 삭제하기가 간편하며,연결 구조를 통해 물리 메모리를 연속적으로 사용하지 않아도 되기 때문에 관리도 쉽다. 탐색O(n)추가, 삭제, 추출O(1) 자바의 연결 리스트는 이중 연결 리스트이기 때문에 삽입,추출이 양방향으로 가능하다.  3. 스택스택은..
[LeetCode#121] Best Time to Buy and Sell Stock
·
Algorithm/문제풀이
❒ Description제목Best Time to Buy and Sell Stock링크https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/자료구조선형 자료구조풀 날짜07/24    ❒ Solutionpublic static int maxProfit(int[] prices) { int maxProfit = 0; int minPrice = prices[0]; for (int price : prices) { minPrice = Math.min(minPrice, price); maxProfit = Math.max(maxProfit, price - minPrice); } return..
[LeetCode#238] Product of Array Except Self
·
Algorithm/문제풀이
❒ Description제목Product of Array Except Self링크https://leetcode.com/problems/product-of-array-except-self/description/자료구조선형 자료구조푼 횟수7/23 이번 문제는 나누기를 하지말라는 제한 조건과 시간복작도 O(n)을 넘기지 말라는 요구사항이 있었다.   ❒ Solutionpublic static int[] solve(int[] nums) { int[] result = new int[nums.length]; int p = 1; for (int i = 0; i = 0; i--) { result[i] *= p; p *= nums[i]; } return result;}..
[LeetCode#15] 3Sum
·
Algorithm/문제풀이
❒ Description 제목3Sum링크https://leetcode.com/problems/3sum/description/자료구조선형 자료구조시간복잡도Two Pointer 풀이 - O(n²) 선형 자료구조 문제로, two pointer 알고리즘을 사용하여 해결할 수 있는 문제.이 문제는 중복 값에 대한 적절한 처리를 해줘야 하는 점이 까다로웠다. ❒ Solutionpublic static List> solve(int[] nums) { int left, right, total; List> res = new ArrayList(); Arrays.sort(nums); for (int i = 0; i 0 && nums[i] == nums[i - 1]) { continu..
Two Pointer
·
Algorithm/내용 정리
❒ DescriptionTrapping Rain water 문제를 풀면서 사용한 Two-Pointer 알고리즘에 대한 정리    ❒ Two Pointer 1. Two Pointer 알고리즘이란?주로 정렬된 배열에서 두 개의 Pointer를 사용하여 특정 조건을 만족할 때 까지 탐색하는 알고리즘이다.해당 알고리즘의 동작원리는 다음과 같다.초기화배열의 시작점 또는 특정 위치에 두개의 포인터를 배치. (일반적으로 시작과 끝에 배치)조건 검색 및 이동각 포인터가 가리키는 요소를 검사하여 조건을 만족하는지 확인한다.조건을 만족하지 않으면 포인터를 이동시킨다.종료 조건포인터가 배열의 끝에 도달하고나, 두 pointer가 교차할 때 반복을 종료한다.이때 원하는 결과를 얻었는지 확인한다. 2. 언제 사용하면 좋을까?주..