Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 시뮬레이션
- 구현
- 토스독학
- 그래프
- 그래프탐색
- 그리디
- 토스유튜브
- 코테
- 그리디알고리즘
- DP
- 미지의 공간탈출
- mcp사용법
- 너비우선탐색
- 토익스피킹
- mcp튜토리얼
- 3dgs
- Python
- 20922
- 수학
- 시계토끼제니쌤
- 20006
- 삼성빈출
- BFS
- 삼성코테기출
- 토스
- mcp란
- 백준
- 토스만능문장
- 28215
- 최단거리추적
Archives
- Today
- Total
Victory in my life
Baekjoon 28215 | 대피소 (Python) 본문
📌문제
SILVER4 / 브루트포스 / 완전탐색 / 구현 / 알고리즘
https://www.acmicpc.net/problem/28215
📌문제 분석 및 설계
역대급 바보짓한 문제다.. 문제이해부터 알고리즘 구현까지 30분만에 해놓고 초기화잘못된 거 못 찾아서 1시간30분을 날렸다 하핳
아무튼, 문제 읽었을때 조합 함수 사용하고 완탐하면 되겠구나 ! 하고 바로 알고리즘을 작성했다.
나의 실수는 result를 -1로 초기화를 했다는 것이었다.
모든 집이 대피소로 지정되는 예외사항을 고려를 하지 못한 것이다.
결국 모든 집이 대피소로 지정되는 경우 other not in daepi 조건이 항상 False가 되어, result가 그대로 -1인 상태로 남아버려서 계속 틀렸다.
다들 조심.
📌소스 코드
import math
from itertools import combinations
def distance(i,j):
return abs(i[0]-j[0])+abs(i[1]-j[1])
n,k=map(int,input().split()) #n개 집, k개 대피소
home=[]
for _ in range(n):
x,y=map(int,input().split())
home.append((x,y))
nCr = combinations(home, k)
answer=[]
for daepi in nCr: #대피소 지정
result=0
for other in home:
if other not in daepi: #대피소가 아닌 집들
min_d=math.inf
for i in daepi: #대피소가 아닌 집들과 대피소인 집 거리 계산해서
min_d=min(min_d,distance(i,other))
result=max(min_d,result)
answer.append(result)
print(min(answer))
'CodingTest > Baekjoon' 카테고리의 다른 글
Baekjoon 7562 | 나이트의 이동 (Python) (0) | 2025.03.19 |
---|---|
Baekjoon 20922 | 겹치는 건 싫어(Python) (1) | 2025.03.04 |
Baekjoon 1463 | 1로 만들기 (Python) (0) | 2025.02.27 |
Baekjoon 11724 | 연결요소의 개수 (Python) (0) | 2025.02.26 |
Baekjoon 1343 | 폴리오미노 (Python) (0) | 2025.02.26 |