문제 설명 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제 풀이 방법 미로탐색(최단거리 탐색)은 BFS의 대표적인 문제 풀이 방법이다. 이전에 풀었던 문제중 비슷한 문제를 참고해 문제를 풀었다. 코드 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ').map(e ..
백준
문제 설명 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 풀이 방법 이 문제는 꽤나 유명한 DP문제 중 배낭문제이다. 처음 문제에 접근할 때 DFS으로 접근했지만 시간초과 에러가 발생해 DP 풀이를 참고했다. 물건의 총 갯수 n, 넣을 수 있는 총 무게 maxWeight를 이용해 각 물건을 넣는 시도를 할 때마다 각 무게에서의 최대 가치값을 측정하기 위해 가로가 maxWe..
문제 설명 https://www.acmicpc.net/problem/23971 23971번: ZOAC 4 i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크 www.acmicpc.net 문제 풀이 방법 x축과 y축 각각 띄어앉을 칸 수를 for문에 적용시켜 cnt를 1씩 더해주는 방법으로 문제를 풀었다. 코드 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split..
문제 설명https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.www.acmicpc.net 문제 풀이 방법삼각형의 경우를 수를 if-elseif 문으로 설정하고 문제를 풀었다. 코드const path = __dirname + '/예제.txt'; // /dev/stdinlet input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ').map(Number).sort((a, b) => b - a));const arr = input.slice(0, inpu..
문제 설명 https://www.acmicpc.net/problem/17178 17178번: 줄서기 아이즈원의 팬인 시온이는 드디어 티켓팅에 성공하여 콘서트를 갔다. 콘서트장에 일찍 도착한 시온이는 기대하며 입장을 위해 줄을 섰다. 하지만 아이즈원의 인기대로 시온이를 포함한 많은 www.acmicpc.net 문제 풀이 방법 이 문제는 스택을 이용해 풀었다. FILO(First In First Out) 선입 후출 방식으로 스택을 구성했다. 입력받는 사람들이 줄선 리스트와 그 리스트를 아파벳, 숫자로 정렬한 리스트의 맨 앞 값들을 비교하며 스택에 넣을지 제거할지 결정하는 코드를 작성했다. 대기하는 사람들이 있는 스택에 남은 사람이 없으면 GOOD, 있다면 BAD를 출력하도록 했다. 코드 const path ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAyixh%2FbtskZFuH4pO%2FZRkWgdCezLHqcJu4ALLS61%2Fimg.jpg)
문제 설명 문제 풀이 방법 이 문제는 스택을 이용해 풀었다. 주어지는 과제가 있다면 과제를 바로 수행해야 하므로 stack에 넣고 2번 작업으로 넘어간다. 과제가 없다면 2번 작업으로 넘어간다. 과제를 받게되면 남은 기간에 -1을 해주고 남은 기간이 0이 되면 score에 해당 점수를 더해주고 pop() 메서드를 이용해 작업 리스트에서 뽑아준다. 집계된 점수를 반환 코드 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ').map(Number)); const [N] = input.shift(); c..