백준 알고리즘(16)
-
[백준 알고리즘] Node.js 10866. 덱
1. 문제 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 2. 풀이 - Class 형태로 Deque를 만들어서 해결하였다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const N = +inputs.shift(); class Deque { constructor(arr){ this.array = arr; } push_..
2023.07.21 -
[백준 알고리즘] Node.js 10845. 큐
1. 문제 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 2. 풀이 - Class 형태로 Queue를 만들어서 해결하였다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const N = +inputs.shift(); class Queue { constructor(arr) { this.array = arr; }; pus..
2023.07.21 -
[백준 알고리즘] Node.js 1260. DFS와 BFS
1. 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 2. 풀이 - DFS와 BFS를 사용하는 문제이다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [n,m,v] = inputs.shift().split(' ').map(v => +v); const graph = Array.from..
2023.06.15 -
[백준 알고리즘] Node.js 24445. 알고리즘 수업 - 너비 우선 탐색 2
1. 문제 https://www.acmicpc.net/problem/24445 24445번: 알고리즘 수업 - 너비 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 2. 풀이 - 처음 풀이는 24444번과 거의 비슷하게 풀었다. 24444번은 오름차순 정렬이었고, 24445번은 내림차순 정렬이기 때문에 sort() 부분만 수정하여 제출하였다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().s..
2023.06.15 -
[백준 알고리즘] Node.js 24444. 알고리즘 수업 - 너비 우선 탐색 1
1. 문제 https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net 2. 풀이 const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [n,m,r] = inputs.shift().split(' ').map(v => +v); const numMap = new Map(); ..
2023.06.15