난이도 : 실버3 ~ 골드3 유형 : 완전 탐색, DP, 그리디, 구현, 그래프 탐색, 자료구조(큐/스택/덱) 시간 3시간 1. 백준 16932번 모양만들기 (난이도 : 골드3, 유형 : 그래프 탐색, 정답 : O) 2. 백준 2800번 괄호제거 (난이도 : 골드5, 유형 : 브루트포스·스택, 정답 : △) 3. 백준 2285번 우체국 (정답 : X) 4. 백준 11725번 트리의 부모 찾기 (정답 : X) 모양만들기 N X M 크기의 배열에서 0인 칸 하나를 1로 만들어서 제일 많이 연결된 1의 수를 구하는 문제이다. 무식한 방법으로 모든 0인 칸을 각각 1로 만들어 그래프 탐색하는 방법이 있지만 그랬다간 시간 초과날게 뻔했다. 한번의 그래프 탐색으로 이 문제를 해결할 순 없을까? 부분 그래프를 그룹으..
난이도 : 실버3 ~ 골드3 유형 : 완전 탐색, DP, 그리디, 구현, 그래프 탐색, 자료구조(큐/스택/덱) 시간 : 3시간 1. 백준 1106번 호텔 (난이도 : 골드 5, 유형 : DP, 정답 : O) 2. 백준 14620번 꽃길 (난이도 : 실버 2, 유형 : 완전탐색, 정답 : △) 3. 백준 22944번 죽음의 비 (정답 : X) 4. 백준 22868번 산책 (정답 : X) 호텔 문제를 보고 최적 부분 구조를 파악할 수 있었다. X명을 구하는데 드는 최소 비용은 1명과 X-1명을 구하는데 드는 최소 비용, 2명과 X-2명을 구하는데 드는 최소 비용, ··· 중의 최소값이다. 따라서 DP를 적용했고 구현의 편의성을 위해 Bottom-up 방식으로 1명, 2명, ···, X명을 구하는데 드는 최소..
난이도 : 실버 3 ~ 골드 3 유형 : DP, 브루트포스, 그리디, 구현, BFS/DFS 시간 : 3시간 1. 백준 16508번 전공책 (난이도 : 실버3, 유형 : 브루트포스, 정답 : ○) 2. 백준 21314번 민겸수 (난이도 : 실버2, 유형 : 그리디, 정답 : △) 3. 백준 15486번 퇴사 2 (정답 : X) 4. 백준 14500번 테트로미노 (정답 : X) 전공책 각 전공책을 선택할 것인지에 따라 최대 2의 16승 만큼의 경우의 수가 발생하므로 완전 탐색을 적용할 수 있었다. 각 경우를 탐색해 원하는 단어를 만들 수 있는 경우의 수에서 발생하는 비용 중 최소 비용을 출력한다. import java.lang.*; import java.util.*; import java.io.*; publ..