-
백준 15686번 치킨 배달알고리즘 2023. 2. 21. 22:33728x90반응형SMALL
문제 설명
이번 문제는 좌표에 치킨 집과 가정 집이 있고 남길 치킨 집의 개수가 주어졌을 경우,
가정 집과 가장 가까운 치킨 집 사이의 거리를 치킨 거리라고 할 경우, 모든 가정 집의 치킨 거리의 합의 최소값을 구하는 문제입니다.
문제 풀이
아이디어
치킨 거리의 합의 최소값 구하는 방법
이번 문제는 각 가정집에서 치킨 집까지의 거리를 모두 구해야지만 최소값을 구할 수 있습니다.
그리고 남길 M개의 치킨 집 조합에 따라 각 가정집의 치킨 거리는 달라집니다.
그러므로 이번 문제는 모든 경우의 수를 다 살펴봐야지만 정답을 구할 수 있습니다.
-> 브루트포스 알고리즘
풀이
풀이 1.
각 치킨 집 중 m개의 조합을 구해서 각 조합의 치킨 거리를 구한 다음 비교하여 최소값을 구해냅니다.
->필자는 위의 방법을 사용해서 문제를 풀었습니다.
풀이 2.
각 치킨 집을 조합에 포함할 경우와 포함하지 않았을 때의 조합을 찾기 위해 백트래킹을 사용할 수 있습니다.
해당 치킨 집을 조합에 포함할 경우와 포함하지 않을 경우를 재귀를 통해 구현해볼 수 있습니다.
-> 백준 알고리즘 분류에 명시됨
해결
이번 문제는 브루트포스로 접근하기 전까지 최대한 고민해보다가 입력 N과 M이 비교적 작다는 것을 확인하고 파이썬의 조합 내장함수를 통해 풀 수 있었습니다.
문제 링크 : https://www.acmicpc.net/problem/15686
15686번: 치킨 배달
크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸
www.acmicpc.net
코드 링크 : https://github.com/beomseok37/baekjoon/blob/master/new!/15686.py
반응형LIST'알고리즘' 카테고리의 다른 글
백준 3130번 붙인드롬 (0) 2023.02.23 백준 3541번 상근타워 (2) 2023.02.22 백준 2487번 섞기 수열 (0) 2023.02.20 10589번 마법의 체스판 (2) 2023.02.18 18352번 특정 거리의 도시 찾기 (0) 2023.02.17