[코드트리] 완전탐색 - 마라톤 중간에 택시타기2

김멉덥·2024년 4월 29일
0

알고리즘 공부

목록 보기
152/171
post-thumbnail
post-custom-banner

코드트리 네이버 커리큘럼 - 완전탐색

Code

N = int(input())
check_points = [list(map(int, input().split())) for _ in range(N)]

ans = []

# 들어온 arr의 모든 거리를 합하며 총 거리 계산하여 return
def get_total_dist(arr):
    total_dist = 0
    for i in range(len(arr)):
        if (i < len(arr)-1):
            p1 = arr[i]
            p2 = arr[i + 1]

            total_dist += abs(p1[0] - p2[0]) + abs(p1[1] - p2[1])
    return total_dist

for i in range(1, N-1):
    to_jump = check_points[i]       # 건너뛸 체크포인트 선정
    tmp = []
    for j in range(N):
        if(check_points[j] != to_jump and i != j):
            tmp.append(check_points[j])         # 건너뛰는 체크포인트 제외하고 다 방문하므로 tmp리스트에 담아두기

    dist = get_total_dist(tmp)      # 총 거리 계산

    ans.append(dist)

print(min(ans))     # 정답으로 최소 거리 출력

풀이 및 해설

  • 1 인덱스 부터 N-1 인덱스까지 건너뛸 체크포인트를 하나씩 선정하여 → 해당 체크포인트 제외하고 다 tmp 리스트에 담고 → 그 체크포인트를 제외한 총 거리를 계산해서 → ans 리스트에 담아두기 → 정답으로는 ans 리스트에서 min값 출력

What I learned

sys.maxsize → 최대 정수값
참고 : https://developeryuseon.tistory.com/47

import sys
 
test = sys.maxsize
  • 최댓값 비교할 때 사용
profile
데굴데굴 뚝딱뚝딱 개발기록
post-custom-banner

0개의 댓글