일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- bit manipulation
- 코테
- two pointers
- geometry
- 파이썬
- Data Structure
- Stack
- array
- Counting
- Class
- Math
- simulation
- java
- 자바
- string
- SQL
- dynamic programming
- Matrix
- sorting
- Binary Search
- Method
- implement
- greedy
- Tree
- 코딩테스트
- hash table
- Number Theory
- Binary Tree
- 구현
- database
- Today
- Total
목록Linked List (11)
코린이의 소소한 공부노트
1. Input 1) ListNode head 2. Output 1) 정렬된 연결 리스트 head에서 모든 중복을 제외한 결과 리스트를 반환 3. Constraint 1) 노드 수의 범위는 [0, 300]이다. 2) -100 Output: [1,2,3] 5. Code /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { ..
1. Input 1) ListNode l1 - 첫 번째 숫자를 일의자리부터 거꾸로 나타낸 ListNode 2) ListNode l2 - 두 번째 숫자를 일의자리부터 거꾸로 나타낸 ListNode 2. Output 1) 첫 번째 숫자와 두 번째 숫자의 합을 일의자리부터 거꾸로 나타낸 ListNode를 반환 3. Constraint 1) 각 linked list의 노드 수의 범위는 [1, 100]이다. 2) 0 Output: [8,9,9,9,0,0,0,1] 설명: - 342 + 465 = 807 - 9,999,999 + 9,999 = 10,009,998 5. Code /** * Definition for singly-linked list. * public class ListNode { * int val; *..
1. Input 1) ListNode head 2. Output 1) 연결 리스트의 중간을 찾아 반환 - 중간이 2개라면 2번째 중간을 반환 3. Constraint 1) 리스트의 노드 수의 범위는 [1, 100]이다. 2) 1 Output: [4,5,6] 5. Code 1) 첫 코드(2023/05/31) /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * ..
목표: 해시에 관련된 빌트인 라이브러리를 사용하지 않고 해시맵 구현하기 - 생성자 - put(), get(), remove() 1. Input 1) 생성자: 없음 2) put(): int key, int value 3) get(): int key 4) remove(): int key 2. Output 1) put(): void. 해시맵에 (key, value) 추가. 만약 key가 있다면 값을 value로 변경 2) get(): key에 해당하는 value 반환. 만약 없다면 -1을 반환 3) remove(): void. key가 있다면 (key, value) 삭제 3. Constraint 1) 0
1. Input 1) ListNode head 2. Output 1) 연결 리스트를 뒤집은 결과를 반환 3. Constraint 1) 노드의 수의 범위는 [0, 5000]이다. 2) -5000
목표: HashSet과 관련된 메서드를 아무 것도 쓰지 않고 HashSet을 구현하기 - 생성자 - add(), contains(), remove() 1. Input 1) add(): HashSet에 추가할 값 2) contains(): HashSet에 있는지 없는지 확인할 값 3) remove(): HashSet에서 제거할 값. 만약 해당 값이 HashSet에 없다면 아무 일도 일어나지 않는다. 2. Output 1) contains(): HashSet에 값이 있다면 true, 없다면 false를 반환 3. Constraint 1) 0

1. 개념정리 1) 같은 타입인 여러 개의 변수를 하나로 묶어놓은 것 - 타입은 기본형, 참조형 가리지 않는다. - 물리적으로(하드디스크) 연속되지 않은 공간에 있어도 상관없다.. - java.util 패키지에 LinkedList 클래스가 있다. 2) 리스트의 요소를 노드(node)라고 부르며, 각 노드에는 값(value)과 다음 노드의 주소가 저장된 링크(next)가 있다. - 특히, 맨 앞 노드를 head, 맨 뒤 노드를 tail이라고 부른다. - 마지막 노드라면 next == null - 데이터가 추가되면 연결만 해주면 되기 때문에, 연결 리스트의 최대 크기는 정해져 있지 않다. 3) 이중 연결 리스트는 단순 연결 리스트에서 이전 노드의 주소가 저장된 링크(previous)가 추가된 것이다. - 맨..
목표: 링크드 리스트의 노드값을 랜덤으로 돌려주는 Solution클래스 구현 - 생성자 - getRandom() 1. Input - 생성자: 링크드 리스트 - getRandom(): 없음 2. Output - getRandom(): 링크드 리스트의 노드값 중 하나 // 모든 노드들이 선택 받을 확률은 다 같아야 한다. 3. Constraint 1) 리스트에 포함된 노드의 수의 범위는 [1, 10^4]의 정수이다. 2) - 10^4
1. Input 1) ListNode head 2) int val 2. Output 1) head에서 head.val == val인 노드를 제거한 결과를 반환 3. Constraint 1) node의 수의 범위는 [0, 104]이다. 2) 1