[BOJ / 백준] 15686번 치킨 배달 파이썬(Python) 문제 풀이

2021. 8. 1. 19:42·Baekjoon
728x90

 

문제

 

문제 링크 : https://www.acmicpc.net/problem/15686

 

15686번: 치킨 배달

크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸

www.acmicpc.net

 

 

 

 

 

CODE

import sys
from itertools import combinations

input = sys.stdin.readline

n, m = map(int, input().split())
city = list(list(map(int, input().split())) for _ in range(n))
result = 999999
house = []      # 집의 좌표
chick = []      # 치킨집의 좌표

for i in range(n):
    for j in range(n):
        if city[i][j] == 1:
            house.append([i, j])
        elif city[i][j] == 2:
            chick.append([i, j])

for chi in combinations(chick, m):  # m개의 치킨집 선택
    temp = 0            # 도시의 치킨 거리
    for h in house: 
        chi_len = 999   # 각 집마다 치킨 거리
        for j in range(m):
            chi_len = min(chi_len, abs(h[0] - chi[j][0]) + abs(h[1] - chi[j][1]))
        temp += chi_len
    result = min(result, temp)

print(result)

 

 

 

 

 

풀이

💡 idea

- m개의 치킨집을 선택하는 모든 조합에 대해 도시의 치킨 거리를 구한다

- 치킨 거리 : abs(r1-r2) + abs(c1-c2)

 

💡 implementation

- 집과 치킨집의 좌료를 각각 리스트에 저장

- itertools의 combinations를 이용하여 치킨집 리스트 chick에서 m개 선택하고, 치킨 거리 구하기!

 

 

 

 

 

결과

 

 

 

 

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Baekjoon' 카테고리의 다른 글

[BOJ / 백준] 2422번 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 파이썬(Python) 문제 풀이  (0) 2021.08.01
[BOJ / 백준] 2210번 숫자판 점프 파이썬(Python) 문제 풀이  (0) 2021.08.01
[BOJ / 백준] 17088번 등차수열 변환 파이썬(Python) 문제 풀이  (0) 2021.07.31
[BOJ / 백준] 3425번 고스택 파이썬(Python) 문제 풀이  (0) 2021.07.26
[BOJ / 백준] 16943번 숫자 재배치 파이썬(Python) 문제 풀이  (0) 2021.07.26
'Baekjoon' 카테고리의 다른 글
  • [BOJ / 백준] 2422번 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 파이썬(Python) 문제 풀이
  • [BOJ / 백준] 2210번 숫자판 점프 파이썬(Python) 문제 풀이
  • [BOJ / 백준] 17088번 등차수열 변환 파이썬(Python) 문제 풀이
  • [BOJ / 백준] 3425번 고스택 파이썬(Python) 문제 풀이
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (326)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Web (54)
        • Web (7)
        • Spring (14)
        • MyBatis (1)
        • AWS (7)
        • HTML & CSS (14)
        • JavaScript (11)
      • Programming (37)
        • C++ (3)
        • Java (6)
        • Python (10)
        • MySQL (1)
        • Oracle (2)
        • Git (15)
        • Dev Tools (0)
      • Infra˙ DevOps (1)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    BOJ
    aws
    c++
    oracle
    자료구조
    CodeUp 기초 100제
    JavaScript
    알고리즘
    C
    Python
    myBatis
    db
    github
    spring
    java
    웹
    web
    clean code
    git
    SourceTree
    Tistory
    Cloud
    단계별로 풀어보기
    VS Code
    MySQL
    Programmers
    codeup
    HTML
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[BOJ / 백준] 15686번 치킨 배달 파이썬(Python) 문제 풀이
상단으로

티스토리툴바