백준(33)
-
[백준 알고리즘] 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 1003. 피보나치 함수
1. 문제 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 풀이 1) 처음엔 그냥 문제에 주어진 대로 문제풀이를 진행했다. 아래는 그 코드이다. const [T, ...inputs] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(v => +v); // answer array에 0이 되는 회수와 1이 되는 회수를 만듬. const answer = Array.from({length : T}, () => [0,0]); // C++로 만든 함수를 JS로..
2023.07.18 -
[백준 알고리즘] Node.js 2667. 단지번호붙이기
1. 문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 2. 풀이 1) BFS로 푼 풀이 const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const N = +inputs.shift(); const graph = inputs.map(v => v.split('').map(vv => +vv)); const visited = Array.from..
2023.06.22 -
[백준 알고리즘] Node.js 2178. 미로 탐색
1. 문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 2. 풀이 1) 최단거리를 구하는 문제이기에 BFS 사용! 2) [1,1] 부터 [N,M] 까지의 최단거리를 구하는 문제이다. 배열로 만들면 마지막에 답을 구할 때 각각 1씩 빼서 보여줘야한다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [N,M]= inputs.shift().split(' ')...
2023.06.22 -
[백준 알고리즘] Node.js 1697. 숨바꼭질
1. 문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 풀이 1) 수빈이가 있는 위치 N, 도착해야할 위치 K가 주어진다. 2) 수빈이가 움직일 수 있는 경우의 수는 x-1, x+1, x*2 인 3가지이고, 모두 1초가 소요된다. 3) 가장 빠른 시간을 구하는 것이기에 bfs 사용. 처음 풀이 const [N,K] = require('fs').readFileSync('/dev/stdin').toString()..
2023.06.21