├── .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 | --------------------------------------------------------------------------------