728x90
def solution(m, n, startX, startY, balls):
answer = []
start = [startX,startY]
for i in range(len(balls)):
end = [balls[i][0], balls[i][1]]
distance = 10**6
temp = []
if start[0]!=end[0] or start[1] > end[1]: # x좌표가 다르거나, y좌표가 시작이 더 클때
temp.append((start[0]-end[0])**2 + (2*n-start[1]-end[1])**2) #위
if start[0]!=end[0] or start[1] < end[1]: # x좌표가다르거나, y좌표가 시작이 더 작을때
temp.append((start[0]-end[0])**2 + (start[1]+end[1])**2) #아래
if start[1]!=end[1] or start[0] < end[0]: # y좌표가 다르거나, x좌표가 시작이 더 작을 때
temp.append((start[0]+end[0])**2 + (start[1]-end[1])**2) #좌
if start[1]!=end[1] or start[0] > end[0]: # y좌표가 다르거나, x좌표가 시작이 더 클 때
temp.append((2*m-start[0]-end[0])**2 + (start[1]-end[1])**2) #우
for dist in temp:
if dist < distance:
distance = dist
answer.append(distance)
return answer
728x90
'코딩테스트 > Python' 카테고리의 다른 글
프로그래머스 스쿨 - 최솟값 만들기(Python)(복습) (0) | 2023.10.13 |
---|---|
프로그래머스 스쿨 - 이진 변환 반복하기(Python)(복습) (0) | 2023.10.10 |
프로그래머스 스쿨 - 요격 시스템(Python)(복습) (0) | 2023.10.08 |
프로그래머스 스쿨 - JadenCase 문자열 만들기(Python)(복습) (0) | 2023.10.07 |
프로그래머스 스쿨 - 신고 결과 받기(Python)(복습) (0) | 2023.10.06 |