Skip to content

Commit

Permalink
docs: content 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
jmkim0 committed Feb 11, 2024
1 parent ed5e5cc commit 0a9ad54
Show file tree
Hide file tree
Showing 20 changed files with 522 additions and 424 deletions.
182 changes: 91 additions & 91 deletions content/10 Wiki/11 Java/11.2 OOP.md

Large diffs are not rendered by default.

116 changes: 58 additions & 58 deletions content/10 Wiki/11 Java/11.3 심화.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ public enum Day {
}
```

> **References**
>
> - [Enum Types](https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)
> - [8.9. Enum Types](https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.9)
> - [Enum (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Enum.html)
### *References*

- [Enum Types](https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)
- [8.9. Enum Types](https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.9)
- [Enum (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Enum.html)

## [제네릭 (Generics)](https://en.wikipedia.org/wiki/Generic_programming)

Expand Down Expand Up @@ -57,13 +57,13 @@ public class Pair<K, V> { // 제네릭 클래스 (제네릭 타입: 제네릭
- `Object` 클래스를 사용하는 것 보다 컴파일 타임 타입 체크를 확실하게 할 수 있고 타입 캐스팅을 줄일 수 있다.
- 여러 다른 타입에 사용할 수 있고 커스터마이징 가능, 타입 체크 가능한 제네릭 알고리즘을 만들 수 있어서 코드의 중복을 막는데 도움이 된다.

> **References**
>
> - [Lesson: Generics (Updated)](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
> - [Chapter 4. Types, Values, and Variables](https://docs.oracle.com/javase/specs/jls/se11/html/jls-4.html#jls-4.4)
> From *4.4. Type Variables* to *4.9. Intersection Types*
> - [Chapter 18. Type Inference](https://docs.oracle.com/javase/specs/jls/se11/html/jls-18.html)
> - [Why Use Generics?](https://docs.oracle.com/javase/tutorial/java/generics/why.html)
#### *References*

- [Lesson: Generics (Updated)](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
- [Chapter 4. Types, Values, and Variables](https://docs.oracle.com/javase/specs/jls/se11/html/jls-4.html#jls-4.4)
From *4.4. Type Variables* to *4.9. Intersection Types*
- [Chapter 18. Type Inference](https://docs.oracle.com/javase/specs/jls/se11/html/jls-18.html)
- [Why Use Generics?](https://docs.oracle.com/javase/tutorial/java/generics/why.html)

## [예외 처리 (Exception handling)](https://en.wikipedia.org/wiki/Exception_handling)

Expand Down Expand Up @@ -121,17 +121,17 @@ public Object pop() {
}
```

> **References**
>
> - [Lesson: Exceptions](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
> - [Chapter 11. Exceptions](https://docs.oracle.com/javase/specs/jls/se11/html/jls-11.html)
> - [14.20. The `try` statement](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html#jls-14.20)
> - [8.4.6. Method Throws](https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.4.6)
> - [14.18. The `throw` Statement](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html#jls-14.18)
>
> **Further Reading**
>
> - [Error (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Error.html)
### *References*

- [Lesson: Exceptions](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
- [Chapter 11. Exceptions](https://docs.oracle.com/javase/specs/jls/se11/html/jls-11.html)
- [14.20. The `try` statement](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html#jls-14.20)
- [8.4.6. Method Throws](https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.4.6)
- [14.18. The `throw` Statement](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html#jls-14.18)

### *Further Reading*

- [Error (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Error.html)

## 컬렉션 프레임워크 (Collections framework)

Expand Down Expand Up @@ -175,11 +175,11 @@ public Object pop() {
컬렉션의 요소를 하나씩 순회할 때 사용하는 객체이다.
컬렉션에 따라 [`iterator()`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html#iterator()) 메서드를 사용하여 이터레이터를 만들 수 있다.

> **References**
>
> - [The Collection Interface](https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html)
> *Iterators*
> - [Iterator (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Iterator.html)
#### *References*

- [The Collection Interface](https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html)
*Iterators*
- [Iterator (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Iterator.html)

### [`Map<K,V>`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html)

Expand All @@ -192,18 +192,18 @@ Key와 entry는 중복이 허용되지 않고 value는 중복될 수 있다.

이터레이터를 활용할 때 `Map` 자체로는 이터레이터를 사용할 수 없고 `entrySet()`, `keySet()`, `values()` 등 각 entry, key, value 들을 따로 `Set`, `Collection`으로 반환해주는 메소드를 활용한 후 이터레이터를 사용해야 한다.

> **References**
>
> - [Trail: Collections](https://docs.oracle.com/javase/tutorial/collections/index.html)
> - [The Collections Framework](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/doc-files/coll-index.html)
>
> **Further Reading**
>
> - [Why is Java Vector (and Stack) class considered obsolete or deprecated?](https://stackoverflow.com/questions/1386275/why-is-java-vector-and-stack-class-considered-obsolete-or-deprecated)
> - [Varargs](https://docs.oracle.com/javase/8/docs/technotes/guides/language/varargs.html)
> - [Can I pass an array as arguments to a method with variable arguments in Java?](https://stackoverflow.com/questions/2925153/can-i-pass-an-array-as-arguments-to-a-method-with-variable-arguments-in-java)
> - [Autoboxing](https://docs.oracle.com/javase/8/docs/technotes/guides/language/autoboxing.html)
> - [Autoboxing and Unboxing](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html)
#### *References*

- [Trail: Collections](https://docs.oracle.com/javase/tutorial/collections/index.html)
- [The Collections Framework](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/doc-files/coll-index.html)

#### **Further Reading**

- [Why is Java Vector (and Stack) class considered obsolete or deprecated?](https://stackoverflow.com/questions/1386275/why-is-java-vector-and-stack-class-considered-obsolete-or-deprecated)
- [Varargs](https://docs.oracle.com/javase/8/docs/technotes/guides/language/varargs.html)
- [Can I pass an array as arguments to a method with variable arguments in Java?](https://stackoverflow.com/questions/2925153/can-i-pass-an-array-as-arguments-to-a-method-with-variable-arguments-in-java)
- [Autoboxing](https://docs.oracle.com/javase/8/docs/technotes/guides/language/autoboxing.html)
- [Autoboxing and Unboxing](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html)

## 애너테이션 (Annotations)

Expand All @@ -225,12 +225,12 @@ Key와 entry는 중복이 허용되지 않고 value는 중복될 수 있다.
- [java.util.stream (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/package-summary.html)
- [Optional (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Optional.html)

> **Further Reading**
>
> - [Imperative programming - Wikipedia](https://en.wikipedia.org/wiki/Imperative_programming)
> - [Procedural programming - Wikipedia](https://en.wikipedia.org/wiki/Procedural_programming)
> - [Declarative programming - Wikipedia](https://en.wikipedia.org/wiki/Declarative_programming)
> - [Functional programming - Wikipedia](https://en.wikipedia.org/wiki/Functional_programming)
### *Further Reading*

- [Imperative programming - Wikipedia](https://en.wikipedia.org/wiki/Imperative_programming)
- [Procedural programming - Wikipedia](https://en.wikipedia.org/wiki/Procedural_programming)
- [Declarative programming - Wikipedia](https://en.wikipedia.org/wiki/Declarative_programming)
- [Functional programming - Wikipedia](https://en.wikipedia.org/wiki/Functional_programming)

## 파일 입출력 (I/O)

Expand Down Expand Up @@ -275,15 +275,15 @@ Key와 entry는 중복이 허용되지 않고 value는 중복될 수 있다.

C 언어 등 자바가 아닌 언어를 포함한 `native` 메서드를 호출할 때 사용한다.

> **References**
>
> - [Java (JVM) Memory Model - Memory Management in Java | DigitalOcean](https://www.digitalocean.com/community/tutorials/java-jvm-memory-model-memory-management-in-java)
> - [Chapter 2. The Structure of the Java Virtual Machine](https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html)
> - [4.4. The Constant Pool](https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.4)
> - [Understanding the constant pool inside a Java class file](https://blogs.oracle.com/javamagazine/post/java-class-file-constant-pool)
>
> **Further Reading**
>
> - [Understanding Garbage Collectors](https://blogs.oracle.com/javamagazine/post/understanding-garbage-collectors)
> - [Java Virtual Machine Guide](https://docs.oracle.com/en/java/javase/11/vm/java-virtual-machine-technology-overview.html#GUID-982B244A-9B01-479A-8651-CB6475019281)
> - [3 Garbage Collector Implementation](https://docs.oracle.com/en/java/javase/11/gctuning/garbage-collector-implementation.html#GUID-23844E39-7499-400C-A579-032B68E53073)
#### *References*

- [Java (JVM) Memory Model - Memory Management in Java | DigitalOcean](https://www.digitalocean.com/community/tutorials/java-jvm-memory-model-memory-management-in-java)
- [Chapter 2. The Structure of the Java Virtual Machine](https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html)
- [4.4. The Constant Pool](https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.4)
- [Understanding the constant pool inside a Java class file](https://blogs.oracle.com/javamagazine/post/java-class-file-constant-pool)

#### *Further Reading*

- [Understanding Garbage Collectors](https://blogs.oracle.com/javamagazine/post/understanding-garbage-collectors)
- [Java Virtual Machine Guide](https://docs.oracle.com/en/java/javase/11/vm/java-virtual-machine-technology-overview.html#GUID-982B244A-9B01-479A-8651-CB6475019281)
- [3 Garbage Collector Implementation](https://docs.oracle.com/en/java/javase/11/gctuning/garbage-collector-implementation.html#GUID-23844E39-7499-400C-A579-032B68E53073)
71 changes: 39 additions & 32 deletions content/10 Wiki/12 DSA/12.1 이론/12.11 자료구조.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,68 +18,75 @@ tags:
---
# 자료구조

## Stack
## [Stack]

1. 후입선출 (LIFO) 자료구조
2. 데이터를 하나씩 입출력
3. 한쪽 끝에서만 입출력이 발생

> **References**
>
> - [Stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))
> - [Stack (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Stack.html)
[Stack]: https://en.wikipedia.org/wiki/Stack_(abstract_data_type)

## Queue
### *References*

- [Stack (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Stack.html)

## [Queue]

1. 선입선출 (FIFO) 자료구조
2. 데이터를 하나씩 입출력
3. 데이터의 입력부와 출력부가 나뉘어져 있음

> **References**
>
> - [Queue](https://en.wikipedia.org/wiki/Queue_(abstract_data_type))
> - [Queue (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Queue.html)
> - [ArrayDeque (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ArrayDeque.html)
> - [LinkedList (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedList.html)
[Queue]: https://en.wikipedia.org/wiki/Queue_(abstract_data_type)

### *References*

- [Queue (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Queue.html)
- [ArrayDeque (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ArrayDeque.html)
- [LinkedList (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedList.html)

## [Linked List]

## Linked List
[Linked list]: https://en.wikipedia.org/wiki/Linked_list

- [Linked list](https://en.wikipedia.org/wiki/Linked_list)
- [LinkedList (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedList.html)

## Deque
## [Deque (Double-ended queue)]

[Deque (Double-ended queue)]: https://en.wikipedia.org/wiki/Double-ended_queue

- [Deque (Double-ended queue)](https://en.wikipedia.org/wiki/Double-ended_queue)
- [Deque (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Deque.html)
- [ArrayDeque (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ArrayDeque.html)

## Hash Table
## [Hash Table]

[Hash table]: https://en.wikipedia.org/wiki/Hash_table

- [Hash table](https://en.wikipedia.org/wiki/Hash_table)
- [HashMap (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html)
- [Hashtable (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Hashtable.html)

## Tree
## [Tree]

[Tree]: https://en.wikipedia.org/wiki/Tree_(data_structure)

- [Tree](https://en.wikipedia.org/wiki/Tree_(data_structure))
- [Binary tree](https://en.wikipedia.org/wiki/Binary_tree)
- [Tree traversal](https://en.wikipedia.org/wiki/Tree_traversal)
- Preorder
- Inorder
- Postorder
- [Tree traversal](https://en.wikipedia.org/wiki/Tree_traversal)
- Preorder
- Inorder
- Postorder
- [Binary search tree](https://en.wikipedia.org/wiki/Binary_search_tree)
- [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
- [PriorityQueue (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/PriorityQueue.html)
- [PriorityQueue (Java SE 11 & JDK 11 )](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/PriorityQueue.html)
- [Trie](https://en.wikipedia.org/wiki/Trie)
- [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree)

## Graph
## [Graph]

[Graph]: https://en.wikipedia.org/wiki/Graph_(abstract_data_type)

- [Graph](https://en.wikipedia.org/wiki/Graph_(abstract_data_type))
- [Graph search](https://en.wikipedia.org/wiki/Graph_traversal)
- [Depth-first search (DFS)](https://en.wikipedia.org/wiki/Depth-first_search)
- [Breadth-first search (BFS)](https://en.wikipedia.org/wiki/Breadth-first_search)
- [Depth-first search (DFS)](https://en.wikipedia.org/wiki/Depth-first_search)
- [Breadth-first search (BFS)](https://en.wikipedia.org/wiki/Breadth-first_search)

### *References*

> **References**
>
> - [Difference between BFS and DFS - GeeksforGeeks](https://www.geeksforgeeks.org/difference-between-bfs-and-dfs/)
- [Difference between BFS and DFS - GeeksforGeeks](https://www.geeksforgeeks.org/difference-between-bfs-and-dfs/)
31 changes: 14 additions & 17 deletions content/10 Wiki/12 DSA/12.1 이론/12.12 알고리즘.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ tags:
## 복잡도

- [복잡도](https://en.wikipedia.org/wiki/Computational_complexity)
- [시간 복잡도](https://en.wikipedia.org/wiki/Time_complexity)
- [시간 복잡도](https://en.wikipedia.org/wiki/Time_complexity)

## 재귀 (Recursion)
## [재귀 (Recursion)]

[재귀 (Recursion)]: https://en.wikipedia.org/wiki/Recursion_(computer_science)

### 재귀 함수의 장점

Expand All @@ -29,10 +31,6 @@ tags:
- 메서드를 반복적으로 호출하면서 메모리의 스택 영역을 많이 점유하게 되어 반복문에 비해 더 많은 메모리를 사용하게 된다.
- 메서드가 호출되고 종료하면서 컨텍스트 스위칭이 이루어지는 비용을 감수해야 한다.

> **References**
>
> - [재귀 (Recursion)](https://en.wikipedia.org/wiki/Recursion_(computer_science))
## Greedy Algorithm

- [Greedy algorithm](https://en.wikipedia.org/wiki/Greedy_algorithm)
Expand All @@ -53,27 +51,26 @@ tags:

- [Binary search algorithm](https://en.wikipedia.org/wiki/Binary_search_algorithm)

## Parametric Search
## [Parametric Search]

결정 알고리즘을 최적화 알고리즘으로 바꾸는 테크닉
최적화 문제를 결정 문제로 바꿔서 풀 수 있다.
이분 탐색을 사용하여 결정 문제를 만족시키는 값을 찾고 그 값이 최적화 문제의 답이 되는 유형이 존재한다.

> **References**
>
> - [Parametric search](https://en.wikipedia.org/wiki/Parametric_search)
[Parametric search]: https://en.wikipedia.org/wiki/Parametric_search

## Math
## Math Algorithms

### 순열
### [순열 (Permutation)]

순열을 만드는 과정을 그래프로 생각하고 DFS, BFS를 활용할 수 있다.

> **References**
>
> - [순열 (Permutation)](https://en.wikipedia.org/wiki/Permutation)
> - [Permutation Algorithms Using Iteration and the Base-N-Odometer Model (Without Recursion)](https://www.quickperm.org/quickperm.html)
> - [itertools - Functions creating iterators for efficient looping - Python 3.10.7 documentation](https://docs.python.org/3/library/itertools.html)
[순열 (Permutation)]: https://en.wikipedia.org/wiki/Permutation

#### *References*

- [Permutation Algorithms Using Iteration and the Base-N-Odometer Model (Without Recursion)](https://www.quickperm.org/quickperm.html)
- [itertools - Functions creating iterators for efficient looping - Python 3.10.7 documentation](https://docs.python.org/3/library/itertools.html)

### 최대공약수 (Great Common Divisor)

Expand Down
8 changes: 4 additions & 4 deletions content/10 Wiki/12 DSA/12.2 문제/거스름돈.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class Solution {
}
```

> **References**
>
> - [거스름돈](https://school.programmers.co.kr/learn/courses/30/lessons/12907)
> - [Coin Change | DP-7 - GeeksforGeeks](https://www.geeksforgeeks.org/coin-change-dp-7/?ref=rp)
## *References*

- [거스름돈](https://school.programmers.co.kr/learn/courses/30/lessons/12907)
- [Coin Change | DP-7 - GeeksforGeeks](https://www.geeksforgeeks.org/coin-change-dp-7/?ref=rp)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ tags:
- Java
- DSA
---
# Mac에서 Docker 사용하기
# 다리를 지나는 트럭

## 직관적으로 큐를 사용한 풀이

Expand Down
Loading

0 comments on commit 0a9ad54

Please sign in to comment.