백준 11399 ATM 문제 python 풀이

박소정·2021년 10월 18일
0

알고리즘

목록 보기
5/8

백준 11399 ATM

풀어봅시다



그리디 알고리즘 문제 3가지 중 가장 쉬웠던 문제
문제를 보고 기준을 찾아 뭐가 탐욕적인 선택일까 고려해야 하는데 사실 문제에 다 적혀있음 머쓱함
돈을 인출하는데 짧은 시간이 걸리는 사람부터 하면 됨!

당연함.. 장보고 계산할 때 나는 카트 한바가지인데 뒷사람 초콜릿 하나면 양보하는게 국룰임... 뒷사람 내꺼 다 기다리게 하기 좀 그럼 => 그리디 알고리즘임 ^*^

그래서 대충 그림을 그려보면 가게 앞에 사람이 몇명이 있는지 세보고, 그 사람들한테 몇분씩 걸리는지 물어보고 짧은 사람 순서대로 다시 줄세우고 일처리 하는 그림?


people = int(input()) # 밖에 몇명이세요?
m = list(map(int, input().split())) # 몇분씩 걸리세요?
# 여러개 한번에 받고 map으로 int로 바꾸고 리스트 변환
m.sort() # 순서대로 줄서주세요
time = 0 # 한사람당 걸리는 시간
total = [] # 한사람당 걸리는 시간을 담아둘곳

for i in m:
    time += i #시간 계산
    total.append(time) #total에 넣기

print(sum(total)) ##sum으로 total 리스트 원소들 합치고 출력

간단간단!

0개의 댓글