본문 바로가기
Coding Test/Problems

[codetree] 모이자 (Novice Mid / 자리 수 단위로 완전탐색)

by haerr 2024. 7. 3.

https://www.codetree.ai/missions/5/problems/gather/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai


문제

n개의 집이 x = 1에서 x = n까지 순서대로 놓여있고, 각각  명의 사람이 살고 있습니다. 이들은 회의를 위해 n개의 집 중 한 곳에 전부 모이려고 합니다. 적절한 집을 선택하여 모든 사람들의 이동 거리의 합이 최소가 되도록 하는 프로그램을 작성해보세요.

 

풀이

각 지점이  목적지인 경우에 대하여, 총 인원수*거리의 합만 구하면 되는 쉬운 문제이다.

n = int(input())
li = list(map(int, input().split()))
ans = [0]*n
for i in range(1, n + 1): #모이는 장소
    for j in range(1, n + 1): #각 집의 이동 거리
        ans[i-1] += li[j-1] * abs(i - j) #인원수*이동거리

print(min(ans))