코딩 테스트/백준

문제 설명 https://www.acmicpc.net/problem/17178 17178번: 줄서기 아이즈원의 팬인 시온이는 드디어 티켓팅에 성공하여 콘서트를 갔다. 콘서트장에 일찍 도착한 시온이는 기대하며 입장을 위해 줄을 섰다. 하지만 아이즈원의 인기대로 시온이를 포함한 많은 www.acmicpc.net 문제 풀이 방법 이 문제는 스택을 이용해 풀었다. FILO(First In First Out) 선입 후출 방식으로 스택을 구성했다. 입력받는 사람들이 줄선 리스트와 그 리스트를 아파벳, 숫자로 정렬한 리스트의 맨 앞 값들을 비교하며 스택에 넣을지 제거할지 결정하는 코드를 작성했다. 대기하는 사람들이 있는 스택에 남은 사람이 없으면 GOOD, 있다면 BAD를 출력하도록 했다. 코드 const path ..
문제 설명 문제 풀이 방법 이 문제는 스택을 이용해 풀었다. 주어지는 과제가 있다면 과제를 바로 수행해야 하므로 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..
코드 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ')); const [N, M, rotaTime] = input.shift().map(Number); const board = input.map(e => e.map(Number)); const solution = (N, M, board) => { let answer = '' let arr = [...board]; for (let i = 0; i < rotaTime; i++){ const newArr = spin(N, M, arr); arr = [..
문제 설명 문제 풀이 방법 각 도형의 경우의 수를 따져 나올 수 있는 모양들이 특정 좌표가 주어졌을 때, 그 좌표를 좌상단에 고정한뒤 그 좌표를 기준으로 브럭의 위치에 해당하는 보드에서의 숫자들을 던한 뒤 Math.max를 이용해 비교해준다. 코드 1 // 빡구현을 깨닫게 해준 문제 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ').map(Number)); const [height, width] = input[0]; const board = input.splice(1); // 모든 브럭의 기준은..
문제 설명 문제 풀이 방법 입력의 구성은 차들의 수, 차들이 들어간 순서, 나온 순서 이렇게 3가지이다. 나온 순서를 기준으로 forEach메서드를 이용해 요소들을 순회하며 passed의 요소가 enters에서의 위치를 보면 1. passed의 다른 값이 추월을 하지 않았다면 현제값이 enters의 0번 인덱스에 위치해 있을 것 2. 만약 다른 값이 추월을 했다면 현제 값은 enters에서의 위치가 0번 인덱스가 아닌 다른 인덱스에 위치할 것 1번의 경우 enters.shift()를 이용해 맨 앞 값을 빼주고 다시 1, 2번 로직을 반복해준다. 2번은 추월을 한 경우이므로 현제 값을 enters.splice(enters.indexOf(현제값), 1)로 제거해 준뒤 1, 2번 로직 반복 코드 const p..
문제 설명 문제 풀이 방법 1부터 num까지의 수가 왼쪽에 큰 수의 개수를 비교하며 배열에 추가해준다. 코드 1 // const path = __dirname + '/예제.txt'; let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const num = +input[0]; const rule = input[1].split(' ').map(e => +e); const sol = (n, array) => { let arr = new Array(n); for (let i = 0; i < array.length; i++) { let left = array[i]; let cnt = 0; for (let j = 0;..
58청춘
'코딩 테스트/백준' 카테고리의 글 목록 (9 Page)