코테준비

문제https://www.acmicpc.net/problem/14499 풀이이 문제는 단순 구현 및 시뮬레이션 문제이다. 다만 조건이 까다로웠다. 주사위가 명령대로 굴러갔을 때의 지도 칸에 있는 숫자에 따라 주사위의 숫자가 변하는지 지도 칸의 숫자가 변하는지 조건을 걸어두는 것을 알아야한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number))const [N, M, y, x, cNum] = input.shift();let comm..
문제https://www.acmicpc.net/problem/14889 풀이이 문제는 완전탐색과 DFS를 이용해 팀원의 조합을 구한 뒤 각 팀원의 조합의 점수 총합을 구한 뒤 양 팀의 점수 차 중 최소 값을 구하는 문제이다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n')const N = +input.shift();let arr = input.map(e => e.split(' ').map(Number));let answer = Infinity;let visited = new Array(..
문제 설명 https://www.acmicpc.net/problem/14501문제 풀이 방법이 문제는 DP를 이용한 풀이와 DFS를 이용한 재귀 함수로의 풀이가 가능한 문제이다.처음 이 문제를 봤을 때는 조합을 이용해 최대로 받을 수 있는 급여를 뽑아낸다 였지만, 이 문제에서 원하는 것은 근무일 수 혹은 상담 시간의 조합이 아니라 받을 총 급여의 최대값이라 DP를 이용해 풀었다. 나는 DP를 이용해 풀이를 진행해보았다. 최근 풀었던 가장 긴 바이토닉 부분 수열 문제에서 아이디어를 얻었다. 스케줄을 순회하며 급여를 체크하는 방향으로 설계했다. 이 문제에서는 주어진 스케줄의 역순으로 순회하며 값을 구했다.문제에서 처음 상담을 시작한 날짜에 따라 받게되는 급여의 최대값이 달라지기 때문이다. 정답 코드const..
문제https://www.acmicpc.net/problem/11054풀이이번 문제는 DP를 이용한 LIS 알고리즘 문제이다.처음 이 문제를 보고 바이토닉 수열이라는 개념에 대해 이해하기 쉽지 않았다... 각 자리수에서 좌/우로 증가, 감소하는 수들의 개수의 최대값을 구하는 문제이다. 좌에서 우로 이동하며 증가하는 수의 연속과 우에서 좌로 이동하며 증가하는 수의 연속을 측정한다. 이 두가지 과정의 결과를 이용해 바이토닉 수열의 최대값을 구할 수 있다. 각 과정에서 나온 증가되는 수의 개수는 dp1, dp2에 담기며, 두 배열에서 인덱스가 같은 값들을 더해주고, 이 중 최대 값을 제출한다. 코드const input = require('fs') .readFileSync(process.platform ===..
문제 설명https://www.acmicpc.net/problem/13414문제 풀이 방법이번 문제는 중복 처리 알고리즘 문제이다. 원래는 객체 리터럴을 이용해 인덱스를 저장해 풀이를 진행했지만, 케이스가 길어지면 시간 초과 에러가 발생할 수 있다 생각했다. 그래서 Set 객체를 이용해 다시 풀어봤다. Set은 먼저 나온 요소만 저장하기 때문에 원본 요소의 뒤에 나온 중복 요소를 순서대로 처리할 수 있다.정답 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n')const [N, L] = in..
문제 설명 문제 풀이 방법 이번 문제는 슬라이딩 윈도우 알고리즘을 이용한 문제다. 처음 접한 알고리즘이기에 조금 어려웠다.... 아무리 해답을 봐도 이해가 좀처럼 되지 않았다....... 서로 비슷한 슬라이딩 윈도우 알고리즘과 투포인터 알고리즘은 조만간 정리해서 글로 작성해 공부하자. 우선 중복 되는 값을 처리하기 위해 Set를 만들어 준뒤, 나누는 수열의 길이는 1부터 주어지는 원소들의 길이와 같기 때문에 1부터 시작해 elements.length 까지 동작. 슬라이딩 윈도우 알고리즘의 특징은 기존에 있던 사이즈에서 새롭게 나타나는 부분과 기존에 있던 부분이 없이지는 점이있다. 이 문제에서는 숫자들의 합의 경우를 구하는 것이기 때문에 합에서 이전 합에서 가장 작은 인덱스의 값을 빼고 새로 들어올 인덱스..
58청춘
'코테준비' 태그의 글 목록 (3 Page)