├── .gitignore
├── BFSDFS
└── README.md
├── Backtracking
└── README.md
├── BinarySearch
└── README.md
├── Bruteforce
└── README.md
├── Dijkstra
└── README.md
├── DisjointSet
└── README.md
├── DynamicProgramming
└── README.md
├── FloydWarshall
└── README.md
├── Greedy
└── README.md
├── Implementation
└── README.md
├── MinimumSpanningTree
└── README.md
├── PrefixSum
└── README.md
├── README.md
├── SlidingWindow
└── README.md
├── Sorting
└── README.md
├── StackQueue
└── README.md
├── TopologicalSorting
└── README.md
└── TwoPointer
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | *.DS_Store
--------------------------------------------------------------------------------
/BFSDFS/README.md:
--------------------------------------------------------------------------------
1 | # BFS & DFS
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | -------------- | ----- | ------------------------------------------------- | -------- |
5 | | 1 | 2667 | 단지번호붙이기 | S1 | [바로가기](https://www.acmicpc.net/problem/2667) | |
6 | | 2 | 2178 | 미로 탐색 | S1 | [바로가기](https://www.acmicpc.net/problem/2667) | |
7 | | 3 | 14502 | 연구소 | G5 | [바로가기](https://www.acmicpc.net/problem/14502) | |
8 | | 4 | 16236 | 아기 상어 | G3 | [바로가기](https://www.acmicpc.net/problem/16236) | |
9 | | 5 | 2146 | 다리 만들기 | G3 | [바로가기](https://www.acmicpc.net/problem/2146) | |
10 | | 6 | 2638 | 치즈 | G4 | [바로가기](https://www.acmicpc.net/problem/2638) | |
11 | | 7 | 2468 | 안전 영역 | S1 | [바로가기](https://www.acmicpc.net/problem/2468) | |
12 | | 8 | 10026 | 적록색약 | G5 | [바로가기](https://www.acmicpc.net/problem/10026) | |
13 | | 9 | 1987 | 알파벳 | G4 | [바로가기](https://www.acmicpc.net/problem/1987) | |
14 | | 10 | 16437 | 양 구출 작전 | G2 | [바로가기](https://www.acmicpc.net/problem/16437) | |
15 |
--------------------------------------------------------------------------------
/Backtracking/README.md:
--------------------------------------------------------------------------------
1 | # Backtracking
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ----- | ----- | ---- | -------- |
5 |
--------------------------------------------------------------------------------
/BinarySearch/README.md:
--------------------------------------------------------------------------------
1 | # Binary Search
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ----------- | ----- | ------------------------------------------------- | -------------------------------------------------------------------------------- |
5 | | 1 | 10816 | 숫자 카드 2 | S4 | [바로가기](https://www.acmicpc.net/problem/10816) | |
6 | | 2 | 1654 | 랜선 자르기 | S3 | [바로가기](https://www.acmicpc.net/problem/1654) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/BinarySearch/1654.js) |
7 | | 3 | 2512 | 예산 | S3 | [바로가기](https://www.acmicpc.net/problem/2512) | |
8 |
--------------------------------------------------------------------------------
/Bruteforce/README.md:
--------------------------------------------------------------------------------
1 | # Bruteforce
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ------------------ | ----- | ------------------------------------------------- | -------- |
5 | | 1 | 1018 | 체스판 다시 칠하기 | S5 | [바로가기](https://www.acmicpc.net/problem/1018) | |
6 | | 2 | 1436 | 영화감독 숌 | S5 | [바로가기](https://www.acmicpc.net/problem/1436) | |
7 | | 3 | 1476 | 날짜 계산 | S5 | [바로가기](https://www.acmicpc.net/problem/1476) | |
8 | | 4 | 14501 | 퇴사 | S3 | [바로가기](https://www.acmicpc.net/problem/14501) | |
9 | | 5 | 10974 | 모든 순열 | S3 | [바로가기](https://www.acmicpc.net/problem/10974) | |
10 |
--------------------------------------------------------------------------------
/Dijkstra/README.md:
--------------------------------------------------------------------------------
1 | # Dijkstra
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ---------------- | ----- | ------------------------------------------------ | -------- |
5 | | 1 | 1753 | 최단경로 | G5 | [바로가기](https://www.acmicpc.net/problem/1753) | |
6 | | 2 | 1504 | 특정한 최단 경로 | G4 | [바로가기](https://www.acmicpc.net/problem/1504) | |
7 |
--------------------------------------------------------------------------------
/DisjointSet/README.md:
--------------------------------------------------------------------------------
1 | # Disjoint Set
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ----- | ----- | ---- | -------- |
5 |
--------------------------------------------------------------------------------
/DynamicProgramming/README.md:
--------------------------------------------------------------------------------
1 | # Dynamic Programming
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ------------- | ----- | ------------------------------------------------- | -------- |
5 | | 1 | 9655 | 돌 게임 | S5 | [바로가기](https://www.acmicpc.net/problem/9655) | |
6 | | 2 | 1463 | 1로 만들기 | S3 | [바로가기](https://www.acmicpc.net/problem/1463) | |
7 | | 3 | 1003 | 피보나치 함수 | S3 | [바로가기](https://www.acmicpc.net/problem/1003) | |
8 | | 4 | 2579 | 계단 오르기 | S3 | [바로가기](https://www.acmicpc.net/problem/2579) | |
9 | | 5 | 9461 | 파도반 수열 | S3 | [바로가기](https://www.acmicpc.net/problem/9461) | |
10 | | 6 | 2193 | 이친수 | S3 | [바로가기](https://www.acmicpc.net/problem/2193) | |
11 | | 7 | 14501 | 퇴사 | S3 | [바로가기](https://www.acmicpc.net/problem/14501) | |
12 |
--------------------------------------------------------------------------------
/FloydWarshall/README.md:
--------------------------------------------------------------------------------
1 | # Floyd-warshall
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | -------- | ----- | ------------------------------------------------- | -------- |
5 | | 1 | 11404 | 플로이드 | G4 | [바로가기](https://www.acmicpc.net/problem/11404) | |
6 | | 2 | 2456 | 키 순서 | G4 | [바로가기](https://www.acmicpc.net/problem/2458) | |
7 |
--------------------------------------------------------------------------------
/Greedy/README.md:
--------------------------------------------------------------------------------
1 | # Floyd-warshall
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | --------- | ----- | ------------------------------------------------ | -------- |
5 | | 1 | 1789 | 수들의 합 | S5 | [바로가기](https://www.acmicpc.net/problem/1789) | |
6 | | 2 | 1026 | 보물 | S4 | [바로가기](https://www.acmicpc.net/problem/1026) | |
7 | | 3 | 1049 | 기타줄 | S4 | [바로가기](https://www.acmicpc.net/problem/1049) | |
8 |
--------------------------------------------------------------------------------
/Implementation/README.md:
--------------------------------------------------------------------------------
1 | # Implementation
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ---------------- | ----- | ------------------------------------------------- | ----------------------------------------------------------------------------------- |
5 | | 1 | 1120 | 문자열 | S4 | [바로가기](https://www.acmicpc.net/problem/1120) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/Implementation/1120.js) |
6 | | 2 | 2503 | 숫자 야구 | S4 | [바로가기](https://www.acmicpc.net/problem/2503) | |
7 | | 3 | 2108 | 통계학 | S3 | [바로가기](https://www.acmicpc.net/problem/2108) | |
8 | | 4 | 3085 | 사탕 게임 | S3 | [바로가기](https://www.acmicpc.net/problem/3085) | |
9 | | 5 | 17413 | 단어 뒤집기 2 | S3 | [바로가기](https://www.acmicpc.net/problem/17413) | |
10 | | 6 | 1051 | 숫자 정사각형 | S3 | [바로가기](https://www.acmicpc.net/problem/1051) | |
11 | | 7 | 1244 | 스위치 켜고 끄기 | S3 | [바로가기](https://www.acmicpc.net/problem/1244) | |
12 | | 8 | 1769 | 3의 배수 | S5 | [바로가기](https://www.acmicpc.net/problem/1769) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/Implementation/1769.js) |
13 | | 9 | 11576 | Base Conversion | S5 | [바로가기](https://www.acmicpc.net/problem/11576) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/Implementation/11576.js) |
14 |
--------------------------------------------------------------------------------
/MinimumSpanningTree/README.md:
--------------------------------------------------------------------------------
1 | # Minimum Spanning Tree
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ----- | ----- | ---- | -------- |
5 |
--------------------------------------------------------------------------------
/PrefixSum/README.md:
--------------------------------------------------------------------------------
1 | # Prefix Sum
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ---------------- | ----- | ------------------------------------------------- | -------- |
5 | | 1 | 2559 | 수열 | S3 | [바로가기](https://www.acmicpc.net/problem/2559) | |
6 | | 2 | 11659 | 구간 합 구하기 4 | S3 | [바로가기](https://www.acmicpc.net/problem/11659) | |
7 | | 3 | 11660 | 구간 합 구하기 5 | S1 | [바로가기](https://www.acmicpc.net/problem/11660) | |
8 | | 4 | 2143 | 두 배열의 합 | G3 | [바로가기](https://www.acmicpc.net/problem/2143) | |
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Baekjoon for JS
2 |
3 | 자바스크립트로 백준 온라인 저지 문제를 풀도록 돕는 레포지토리입니다.
4 |
5 | **코드 템플릿**과 **추천 문제**를 제공합니다.
6 |
7 |
8 |
9 | ### 🔮 Template
10 |
11 | - JS는 브라우저 환경에서 작동하므로 백준 사이트의 문제를 풀기 위해서는 Node JS 를 사용해야 합니다.
12 | - Node JS로 코드를 작성하기 위해 다음의 두 가지 템플릿을 권장드립니다.
13 |
14 | **basic**
15 |
16 | ```js
17 | const fs = require('fs');
18 | // TODO: 제출 시 경로 변환 필수 ("/dev/stdin")
19 | const input = fs.readFileSync('test.txt').toString().trim().split('\n');
20 |
21 | // 풀이
22 | function solution(arr) {
23 | const [a, b] = arr[0].split(' ');
24 | return Number(a) + Number(b);
25 | }
26 |
27 | console.log(solution(input));
28 | ```
29 |
30 | **extended**
31 |
32 | ```js
33 | const fs = require('fs');
34 | // TODO: 제출 시 경로 변환 필수 ("/dev/stdin")
35 | const input = fs.readFileSync('test.txt').toString().trim().split('\n');
36 | // 정리
37 | /* ex.
38 | const x = Number(input[0]);
39 | const [y, z] = input[1].split(' ').map(v => Number(v));
40 | const arr = input[2].split(' ');
41 | */
42 | // 풀이
43 | function solution(x, y, z, arr) {
44 | const answer = [];
45 | return answer.join('\n');
46 | }
47 |
48 | console.log(solution(x, y, z, arr));
49 | ```
50 |
51 | - 테스트 케이스는 `test.txt`에 작성하여 노드 환경에서 동작시킬 수 있습니다. (ex. `node my-solution.js`)
52 | - 제출 시 경로는 `test.txt`에서 `/dev/stdin`으로 변경해야 정상적으로 채점이 이루어집니다.
53 | - input변수에 각 라인을 나누어 배열로 저장합니다.
54 | - extended 템플릿의 경우 solution 함수에 넣기 전 미리 정리하는 방식입니다. 이를 통해 다른 PS 플랫폼과 유사하게 문제를 풀 수 있습니다.
55 | - 답이 한 줄일 경우 basic의 return처럼 작성합니다.
56 | - 여러 줄일 경우 반드시 extended의 return과 같이 배열내에 답을 넣어 `join('\n')`으로 하나의 string으로 만들어야 합니다.
57 |
58 |
59 |
60 | ### 💡 Suggestion
61 |
62 | - 코딩 테스트에 주로 나오는 유형을 정리하였습니다.
63 | - JS를 완전히 지원하지 않는 백준 플랫폼 특성상 다음의 기준에 적합한 문제들을 선별하였습니다.
64 | - 맞힌 사람 1,000명 이상
65 | - JS로 푼 사람 10명 이상
66 | - 난이도 플래티넘 이하
67 | - 위 조건에 맞는 문제가 10개 이하일 경우, 조건에 맞지 않더라도 충분히 JS로 풀 수 있다면 추가합니다. (이 경우 반드시 직접 풀고 풀이 링크 추가)
68 | - 각 링크를 클릭하여 해당 문서로 이동할 수 있습니다.
69 |
70 | | Title | Name | Count | Link |
71 | | --------------------- | -------------------- | ----- | --------------------------------------------------------------------------------------- |
72 | | Implementation | 구현 | 9 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/Implementation) |
73 | | Dynamic Programming | 동적계획법 | 7 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/DynamicProgramming) |
74 | | Greedy | 그리디 | 3 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/Greedy) |
75 | | Bruteforce | 브루트포스 | 5 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/Bruteforce) |
76 | | Sorting | 정렬 | 5 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/Sorting) |
77 | | Binary Search | 이분 탐색 | 3 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/BinarySearch) |
78 | | BFS & DFS | 너비 & 깊이 우선탐색 | 10 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/BFSDFS) |
79 | | Prefix Sum | 누적합 | 4 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/PrefixSum) |
80 | | Dijkstra | 다익스트라 | 2 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/Dijkstra) |
81 | | Disjoint Set | 분리 집합 | 0 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/DisjointSet) |
82 | | Backtracking | 백 트래킹 | 0 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/Backtracking) |
83 | | Stack & Queue | 스택 & 큐 | 1 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/StackQueue) |
84 | | Two Pointer | 투 포인터 | 0 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/TwoPointer) |
85 | | Minimum Spanning Tree | 최소 스패닝 트리 | 0 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/MinimumSpanningTree) |
86 | | Topological Sorting | 위상 정렬 | 2 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/TopologicalSorting) |
87 | | Floyd-warshall | 플로이드 와샬 | 2 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/FloydWarshall) |
88 | | Sliding Window | 슬라이딩 윈도우 | 3 | [바로가기](https://github.com/haesoo9410/baekjoon-for-js/tree/main/SlidingWindow) |
89 |
90 |
91 |
92 | ### 🐳 Contributor
93 |
94 | | [Harry](https://github.com/haesoo-y) | [Mulgyeol](https://github.com/Mulgyeol) | [KGC9175](https://github.com/KGC9175) |
95 | | :------------------------------------------------------: | :------------------------------------------------------: | :-----------------------------------------------------: |
96 | |
|
|
|
97 |
98 | - 기준에 적합한 문제는 언제든 PR을 남겨주세요.
99 | - 커밋 컨벤션은 [깃모지](https://haesoo9410.tistory.com/301)를 따르고 있으며 지키지 않아도 좋습니다.
100 | - 그 외 제안할 내용이 있다면 ISSUE를 작성해주세요.
101 |
--------------------------------------------------------------------------------
/SlidingWindow/README.md:
--------------------------------------------------------------------------------
1 | # Sliding Window
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ----------- | ----- | ------------------------------------------------- | ---------------------------------------------------------------------------------- |
5 | | 1 | 10025 | 게으른 백곰 | S4 | [바로가기](https://www.acmicpc.net/problem/10025) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/SlidingWindow/10025.js) |
6 | | 2 | 15961 | 회전 초밥 | G4 | [바로가기](https://www.acmicpc.net/problem/15961) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/SlidingWindow/15961.js) |
7 | | 3 | 21921 | 블로그 | S3 | [바로가기](https://www.acmicpc.net/problem/21921) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/SlidingWindow/21921.js) |
8 |
--------------------------------------------------------------------------------
/Sorting/README.md:
--------------------------------------------------------------------------------
1 | # Sorting
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | --------------- | ----- | ------------------------------------------------- | -------- |
5 | | 1 | 10651 | 좌표 정렬하기 2 | S5 | [바로가기](https://www.acmicpc.net/problem/10651) | |
6 | | 2 | 11004 | K번째 수 | S5 | [바로가기](https://www.acmicpc.net/problem/11004) | |
7 | | 3 | 1026 | 보물 | S4 | [바로가기](https://www.acmicpc.net/problem/1026) | |
8 | | 4 | 1764 | 듣보잡 | S4 | [바로가기](https://www.acmicpc.net/problem/1764) | |
9 | | 5 | 10815 | 숫자 카드 | S4 | [바로가기](https://www.acmicpc.net/problem/10815) | |
10 |
--------------------------------------------------------------------------------
/StackQueue/README.md:
--------------------------------------------------------------------------------
1 | # Stack & Queue
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | -------- | ----- | ------------------------------------------------ | -------- |
5 | | 1 | 1874 | 스택수열 | S3 | [바로가기](https://www.acmicpc.net/problem/1874) | |
6 |
--------------------------------------------------------------------------------
/TopologicalSorting/README.md:
--------------------------------------------------------------------------------
1 | # Topological Sorting
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | --------- | ----- | ------------------------------------------------ | -------------------------------------------------------------------------------------- |
5 | | 1 | 2252 | 줄 세우기 | G3 | [바로가기](https://www.acmicpc.net/problem/2252) | |
6 | | 2 | 1516 | 게임 개발 | G3 | [바로가기](https://www.acmicpc.net/problem/1516) | [풀이](https://github.com/haesoo9410/Baekjoon_JS/blob/main/TopologicalSorting/1516.js) |
7 |
--------------------------------------------------------------------------------
/TwoPointer/README.md:
--------------------------------------------------------------------------------
1 | # Two Pointer
2 |
3 | | Index | Number | Title | Level | Link | Solution |
4 | | ----- | ------ | ----- | ----- | ---- | -------- |
5 |
--------------------------------------------------------------------------------