티스토리 뷰
반응형
문제
15686번: 치킨 배달
크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸
www.acmicpc.net
풀이
조합과 브루트포스로 간단하게 풀 수 있는 문제다
import sys
from itertools import combinations
import copy
N, M = map(int, sys.stdin.readline().split(" "))
field = []
chickenhouse = []
# 인풋 받기 (0: 빈칸 / 1: 집 / 2: 치킨집)
# 치킨집 좌표는 따로 저장함
for i in range(N):
line = list(map(int, sys.stdin.readline().split(" ")))
for j in range(N):
if line[j] == 2:
chickenhouse.append([i, j])
line[j] = 0
field.append(line)
# 조합
com = combinations(chickenhouse, M)
result = []
# 조합 하나씩
for each in com:
newfield = copy.deepcopy(field)
total = 0
# 조합에 해당하는애들만 치킨집으로 설정
for ch in each:
newfield[ch[0]][ch[1]] = 2
# 돌리기
for i in range(N):
for j in range(N):
# 집을 찾으면
if newfield[i][j] == 1:
dis = 1000
for ch in each:
dis = min(dis, abs(i-ch[0])+abs(j-ch[1]))
total += dis
result.append(total)
print(min(result))
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오톡으로 로그인 오류
- 코틀린 리스트뷰
- 데이터바인딩 뷰바인딩 차이
- 카카오 기출
- 코틀린 바텀네비게이션
- 소수 구하기 파이썬
- flutter simultor
- 카카오 키해시
- Kotlin
- 프로그래머스
- 안드로이드
- TextFormField keyboard
- 코틀린 데이터바인딩
- 안드로이드 카카오톡으로 로그인
- 백준
- kotlin fragment
- 안드로이드 키해시
- 투포인터 알고리즘
- 코틀린 뷰바인딩
- 백준 1806
- 시뮬레이터 키보드
- 백준알고리즘
- 코틀린
- 투포인터 알고리즘 파이썬
- 백준 1644
- 전화번호목록 파이썬
- 파이썬 최대공약수
- 백준 2003
- counting sort
- 코틀린 뷰페이저
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함