백준 11399번: ATM

ddongseop·2021년 7월 9일
0

Problem Solving

목록 보기
18/49

✔ 풀이를 위한 아이디어

  • 그리디 알고리즘 (Greedy Algorithm) 과 정렬 (Sorting)

정말정말 간단한 문제인데, 너무 어렵게 생각했어서 반성하고자 글로 남긴다.

✔ 코드

import sys

N = int(sys.stdin.readline())
P = list(map(int, sys.stdin.readline().split()))

P = sorted(P)
count = 0

for i in range(N):
    for j in range(i+1):
        count += P[j]

print(count)
  • 처음 이 문제를 접했을 때, N명을 일렬로 세우는 모든 경우의 수를 고려하고 그 중에서 최솟값을 구해야한다고 생각했다.
  • 그러나 해당 방법은 너무 비효율적인 데다가 심지어 매우 어렵다. 밑의 링크에 방법이 나와있다. https://codepractice.tistory.com/59
  • 시간의 합이 가장 최소가 되는 경우는 시간이 짧은 사람부터 ATM기를 이용하는 경우이다. 앞으로는 너무 불필요하게 복잡하다고 느껴지면 풀이의 방향성 자체에 문제가 있다는 것을 감지하도록 하자.


✔ 관련 개념

  • 반성하자...

0개의 댓글