백준 (3) 썸네일형 리스트형 백준 알고리즘 - 2156 - 포도주 시식 - DP 문제 풀이, 반례 모음 문제 링크: https://www.acmicpc.net/problem/2156 난이도: 실버 1 아직 나에게는 너무x100 이해하기 어려운 DP.. 패스트캠퍼스 나동빈님 강의에서 i번째 마시기, i번째 안 마시기에서 힌트를 얻고 풀었습니다. 1. dp[1] = wines[1] 2. dp[2] = wines[1] + wines[2] 3. dp[3] = max(dp[2], dp[1]+wines[3], wines[2]+wines[3]) 4. dp[4] = max(dp[3], dp[2]+wines[4], dp[1]+wines[3]+wines[4]) ... 이후 반복 const wines = `${require('fs').readFileSync('/dev/stdin')}`.trim().split(/\n/).map.. 백준 알고리즘 - 1697 - 숨바꼭질 - 그래프 문제 풀이 문제 링크: https://www.acmicpc.net/problem/2667 난이도: 실버 1 일종의 최단 거리 찾기 문제로, BFS가 권장됩니다. -1, +1, x2 세 가지 조건으로 방문한 노드를 1차원 배열에 기록하여 완전탐색을 하다가, K 노드에 몇 번에 걸쳐 도달했는지 출력하면 됩니다. 원리는 간단하지만, 어떤 조건식을 추가하느냐에 따라 성능이 많이 달라지므로 주의가 필요합니다. 저는 5번째 시도에서 성공 후 코드를 리팩토링 하며 9번 더 시도하게 되었습니다. 참고할만한 포인트와 함께 몇 가지 과정을 소개해보겠습니다. const visited = []; let queue = []; let answer = n === k ? '0' : undefined; bfs(n, 0); while (queue.. 백준 알고리즘 - 16173 - 점프왕 쩰리 (Small) - 그래프 문제 풀이 문제 링크: https://www.acmicpc.net/problem/16173 난이도: 실버 4 끝점 -1에 도달할 수 있는지, 없는지를 알기 위해 모든 이동 경로를 탐색해야 하므로 그래프+브루트포스 방법을 써야 했습니다. 그래프 문제치고 난이도가 낮은 문제로, 상하좌우 네 방향이 아닌 오른쪽 또는 아래로만 이동할 수 있고 무조건 0, 0에서 시작하는 조건이어서 단순하게 풀 수 있었습니다. 끝점에 도달한다는 특수한 상황일 때 출력 값이 다르므로, answer의 디폴트를 Hing로 두고 DFS 로직을 구현했습니다. let [size, ...map] = `${require('fs').readFileSync('/dev/stdin')}`.trim().split(/\n/); size = +size; map = .. 이전 1 다음