전체 글182 자바 - Deque의 LinkedList로 코테 푸는 법 LinkedList는 List, Queue, Deque을 다 implements 한다.다른 인터페이스로 구현된 LinkedList는 다른 글에서 볼 수 있고여기서는 Deque으로 구현된 것만 확인한다. 그 전에...Deque의 LinkedList를 사용해야 하는 문제 유형Deque의 LinkedList 구현은 특히 다음과 같은 유형의 문제 해결에 적합합니다:양방향 큐 구현: 문제가 데이터의 양 끝에서 추가 및 삭제를 자주 요구할 때, 예를 들어 스택이나 큐의 기능이 결합된 형태가 필요한 경우.양방향 순회가 필요한 경우: 데이터를 앞뒤로 자유롭게 탐색해야 할 때 유리합니다.실시간 계산 문제: 데이터의 앞부분이나 뒷부분에서 요소를 추가하거나 제거하면서 실시간으로 최대값, 최소값 등을 계산해야 하는 문제.슬라.. 2024. 4. 28. 자바 - Deque 이야기 자바에서 쓸 수 있는 자료구조 클래스에 대한 이야기가 거의 끝을 향해 가고 있다.덱하고 셋만 하면 끝이다!힘을 내어 빨리 끝을 내 보자! Java에서 Deque 인터페이스는 "double ended queue"의 약자로, 양쪽 끝에서 요소를 추가하거나 제거할 수 있는 선형 컬렉션입니다. 이는 스택(stack)과 큐(queue)의 일반화된 형태로 볼 수 있으며, FIFO(First-In-First-Out) 및 LIFO(Last-In-First-Out) 양쪽의 동작을 모두 지원합니다. 다른 포스트에서 여러 번 나왔지만 한 번 더 넣었다. 덱에 대해 더 딥하게 알아야 할 내용이 있나...?LinkedList 같은 경우는 진짜 머리 빠게지게까지 볼 수 있는데 덱에서는 그러지 말자... 호호호... 😃...De.. 2024. 4. 27. 자바 - PriorityQueue로 코테 푸는 법 두둥 😄 두둥 🥹 지나친 학습으로 인해 미쳐 가고 있다. 🤪 1. 그래서, 언제 PriorityQueue를 써야 되나요? 프라이어리티 큐(Priority Queue)는 특정 기준에 따라 우선 순위를 부여하여 가장 우선 순위가 높은 요소를 먼저 처리하는 자료구조입니다. 코딩 테스트에서 다음과 같은 유형의 문제를 해결할 때 프라이어리티 큐를 유용하게 사용할 수 있습니다:최소 또는 최대 요소 찾기: 요소들 중 최소값 또는 최대값을 빠르게 찾아내야 할 때, 특히 반복적으로 최소값 또는 최대값을 추출해야 하는 경우에 프라이어리티 큐를 사용합니다. 다익스트라 알고리즘: 최단 경로를 찾는 알고리즘 중 하나로, 각 정점까지의 최단 거리를 계산할 때 우선 순위 큐를 사용하여 현재 가장 짧은 거리를 가진 정점을 빠르.. 2024. 4. 27. 자바 - PriorityQueue 이야기 지난 글쓰기를 보니 내가 List 인터페이스에 대해서는 설명을 그다지 많이 하지 않았는데Queue에 대해서 이야기를 많이 했더니 PriorityQueue에 대해 제대로 설명하지 않았다.프라이어리티큐는 이런 느낌이다. PriorityQueue는 Java에서 제공하는 표준 라이브러리 중 하나로, 자동으로 요소들이 우선 순위에 따라 정렬되는 큐 구현체입니다. 이 구현체는 내부적으로 힙(heap) 자료구조, 특히 최소 힙(min-heap)을 사용하여 요소들을 관리합니다. 이는 각 요소가 추가될 때마다 자동으로 정렬되어, 가장 낮은(또는 가장 높은, 정렬 기준에 따라 다름) 요소가 큐의 맨 앞에 위치하게 됩니다.PriorityQueue의 주요 특징자동 정렬: 요소가 추가될 때마다 자동으로 정렬이 이루어지며, 이는.. 2024. 4. 27. 자바 - Queue의 LinkedList 이야기와 이걸로 코테 푸는 법 LinkedList는 List걸로도 쓸 수 있고 Queue걸로도 쓸 수 있고 Deque걸로도 쓸 수 있다.e.g. Deque numbers = new LinkedList(); 상황에 따라 선택하면 된다. 여기서는 큐를 구현한 링크드리스트를 알아 보자! Java에서 LinkedList 클래스는 List와 Deque 인터페이스를 구현하는데, 이를 통해 이중 연결 리스트(double-linked list) 구조를 제공합니다. LinkedList를 사용하는 주된 이유 중 하나는 그것이 큐(queue), 더블 엔디드 큐(deque), 그리고 리스트(list) 기능을 모두 제공하기 때문입니다. 다음은 LinkedList가 큐로 사용될 때의 특징과 관련 기능에 대한 자세한 설명입니다. 그림을 보면 이해가 더 빠르다... 2024. 4. 27. [묘공단] 자바 - Queue 이야기 태초에 Iterable이 계셨고 그 아래에 자식 Collection이 계셨고 그걸 또 Queue가 계승하셨네.앞으로 Deque도 볼 건데 일단 머릿속에 큐(한 번 영어로 쓴 건 그 뒤로는 다 한글로 쓸 것임.)를 중심에 둬 보자.왜냐면 덱 인터페이스가 큐 인터페이스를 상속하기 때문이다.위 그림 상으로는 큐에 대해서 좀 보고 PriorityQueue만 보면 될 거 같지만LinkedList도 봐야 한다.왜? 링크드리스트는 List, 큐, 덱을 모두 구현하기 때문이다.나 같은 범부는 여기까지만 봐도 너무 신기하고 재밌고 이 언어 설계한 사람들이 진짜 천재 같아서 가슴이 두근두근하다.요즘 세상에 누가 자바 쓰냐고 하지만 나는 이 자바만 해도 너무 재밌을 거 같다! 큐(Queue)는 자바에서 컬렉션 프레임워크의 .. 2024. 4. 27. 내가 이렇게까지나 열심히 하는 이유 프로그래머스 레벨3까지 다 풀고내가 지원하는 회사에 앞으로 사용할 언어 관련 포폴 만들어서 제출했는데도 불구하고서류 및 면접 통과가 되지 않는다면나는 정말로 회사에 개발자로 취업할 생각 그만두고바로 공장 들어가서 일할 거다.나는 그 시간을 최대한 빨리 앞당기고 싶다.더 이상 내 인생에 도움이 안 되는 개발로 인생 낭비, 시간 낭비 하고 싶지 않다.그래서 진짜 하루 종일 컴퓨터 앞에 앉아 있다.그 미래를 앞당기고 싶어서. 나는 내가 개발을 못 한다고 생각하지 않는다.전 회사에서 일하면서 그 점을 확실히 경험했다.나보다 개발 못 하고, 이해 못 하고, 공부 안 하고, 열정 없고 노력도 안 하는 사람 널렸다.그런 사람도 다 취업해서 일하고 경력 쌓아서 나보다 더 대접 받으면서 일한다. 난 진짜 궁금하더라고.내.. 2024. 4. 27. 자바 - Stack 및 Vector로 코테 푸는 법 자~ 코딩 테스트에서 Stack 쓸 경우를 좀 파악해 봅시다.1. 코테에서 스택을 사용해야 하는 때스택은 후입선출(Last In First Out, LIFO) 구조로, 가장 마지막에 들어온 요소가 가장 먼저 나가는 특성을 가집니다. 이 특성은 특정 유형의 알고리즘 문제에서 매우 유용하며, 스택을 사용해야 하는 몇 가지 상황은 다음과 같습니다:괄호 검사: 코드에서 괄호의 짝이 맞는지 확인하는 문제 역순 문자열: 문자열을 역순으로 뒤집거나 순서를 조작해야 하는 경우 후위 표기법 계산: 수식이 주어진 경우, 이를 계산하기 위해 스택 사용재귀 알고리즘의 반복적 구현: 재귀 함수를 스택을 사용하여 반복적으로 풀기깊이 우선 탐색(DFS): 그래프의 깊이 우선 탐색을 구현할 때2. 코테에서 스택을 사용해야 하는 문제.. 2024. 4. 27. 자바 - Stack 및 Vector 이야기 스택! ADT로서의 스택 이야기는 지겹다!벡터 이야기부터 좀 해 보자. 자바의 스택 클래스는 벡터를 상속한다.그래서 스택은 벡터의 모든 기능을 포함한다.벡터가 뭘까?(참고로 난 Vector를 1도 모른다. 그래서 이 글이 매우 길어질 것 같다.) 우선 이게 도대체 어떤 인터페이스를 구현하고 있는 클래스인지 알아 봤다.(geeksforgeeks... 옛날(?)에는 이상한(?) 글만 올라와 있는 광고 사이트라 생각했는데 지금은 가장 마음에 드는 퀄리티의 콘텐츠를 제공한다.)벡터가 리스트를 구현한다고???리스트는 또 콜렉션을, 콜렉션은 또 이터러블을 상속하네...그럼 어떻게 한다? 싹 다 뒤져 본다...Iterable 인터페이스Iterable 인터페이스는 Java의 모든 콜렉션 루트 인터페이스 중 하나로, 콜.. 2024. 4. 26. 자바 - Map으로 코테 푸는 법 자바 코딩 테스트에서 어떻게 하면 Map으로 문제를 풀 수 있을까?혹여나 지금 Map으로 아무 것도 못 하겠다 하더라도 괜찮다.1번, 2번, 3번 계속 보고 하다 보면 할 수 있게 된다. HashMap을 쓰는 법!문제: 두 수의 합문제 설명: 주어진 정수 배열 nums에서 두 수를 선택하여 그 합이 특정 목표값 target이 되도록 합니다. 두 수의 인덱스를 반환해야 합니다. 각 입력에 정확히 하나의 솔루션이 있다고 가정하고, 같은 요소를 두 번 사용할 수 없습니다. 입력 예시: nums = [2, 7, 11, 15], target = 9 출력 예시: [0, 1]가장 좋은 솔루션이 문제는 HashMap을 사용하여 각 숫자의 보완적인 숫자(목표값 - 현재 숫자)가 이전에 맵에 있는지 확인함으로써 효율적으로.. 2024. 4. 26. 자바 - Map 이야기 몇 분 전에 내 역작 '자바 - List - LinkedList 뽀개기'를 날려 먹어 기분이 심히 좋지 않으나그래도 할 일은 해야 하기에 Map으로 바로 넘어간다. 1. 맵은 '키:값' 형태의 자료구조다.각 키는 고유해야 한다.각 키에는 하나의 값이 매핑되어야 한다.우선은 이것만 기억하자.2. 맵은 인터페이스다. 따라서 자바 안에는 이 인터페이스를 구현한 많은 클래스들이 있다.각 클래스를 알고 각 클래스 안의 메서드를 다 알아야 코테를 잘 풀 거 아닌가?Java의 주요 Map 구현체HashMap순서를 보장하지 않는 맵으로, 키와 값을 해시 테이블을 사용하여 저장합니다. 키의 순서에 의존하지 않는 애플리케이션에 적합하며, 일반적으로 가장 많이 사용됩니다.null 키와 null 값이 허용됩니다.TreeMap.. 2024. 4. 26. 자바 - List - LinkedList 뽀개기 뜻하지 않게 맥미니 전선을 건드려 본체가 off됐고 3시간 동안 쓴 글이 날아갔다. 나는 그 글을 다시 복원할 자신도 힘도 없다. 일부러 이 글은 여기서 끝낸다. 이 글 조차 안 남길 수 있지만 내가 LinkedList 공부를 했다는 흔적을 남기기 위해 남긴다. 2024. 4. 26. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음