본문 바로가기
코딩테스트/Python

프로그래머스 스쿨 - 당구 연습(Python)(복습)

by 보안매크로 2023. 10. 9.
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