2025/01/28 2

[백준] 소문난 칠공주 1941번 (java) 조합

출처 : https://www.acmicpc.net/problem/1941 풀이 방법해당 문제를 보고 완전 탐색 문제인 것을 확인했다. 처음엔 단순히 dfs, bfs를 통해 임도연 파가 3명이 넘어가면 중단하며 인접한 7명의 사람을 선택하는 방법으로 풀이할까 했지만, 이렇게 한다면 아래 이미지와 같은 케이스는 탐색하지 못한다. 그렇기 때문에 각 위치의 인덱스를 이용해서 7명을 뽑고, 7명 중 임도연파 수를 세고, 인접한 지 검사하는 방법으로 완전탐색을 수행해야 한다.인덱스는 0부터 24까지 두었고 y좌표를 인덱스 / 5, x좌표를 인덱스 % 5로 설정해서 y, x좌표를 구했다.여기서 visited배열은 선택된 사람 adjVisited는 인접 검사를 진행하기 위한 bfs 수행 시 방문 여부이다. 7명 구하..

Algorithm 2025.01.28

[백준] 동전 분배 1943번 (java) dp

출처 : https://www.acmicpc.net/problem/1943 풀이 방법 이 문제는 냅색 문제 유형에 속한다. 주어진 동전의 종류와 각 동전의 개수를 사용해 두 사람이 같은 금액을 만들 수 있는지 확인해야 한다. 이를 해결하기 위해 DP(동적 계획법)을 사용한다.  1. 총금액 확인 • 먼저 주어진 모든 동전의 금액을 계산하여 총합 sum을 구한다. • 만약 총금액이 홀수라면 두 사람이 같은 금액을 가질 수 없으므로, 바로 0을 출력한다. 이는 두 사람이 나눠가질 금액이 정확히 sum / 2가 되어야 하기 때문이다. 한 사람이 sum/2 금액을 만들 수 있으면 나머지 사람은 남은 돈을 다 가져가면 sum/2가 되므로 자연스럽게 문제가 해결된다. 그러므로 sum/2를 구하는 경우만 생각하면 된..

Algorithm 2025.01.28