728x90
반응형
1. 문제 설명
2. 풀이과정
시간의 합이 최소가 되려면 돈을 인출하는데 필요한 시간이 적은 사람부터 돈을 인출하면 된다. 따라서 각 사람이 돈을 인출하는데 필요한 시간이 저장된 리스트에서 최솟값을 구하여 이전 사람이 돈을 인출한 시간에 더하고 그 값을 전체 인출 시간에 더해준다. 시간을 더했으면 해당 사람을 삭제하고 나머지 값 중 최솟값을 찾아 계속적으로 해당 과정을 반복하면 된다.
- sys.stdin.readline() 함수로 입력받기 위해 sys 모듈을 불러온다. import sys
- 사람의 수를 입력받는다. N = int(sys.stdin.readline())
- 각 사람이 돈을 인출하는 데 걸리는 시간을 리스트로 입력받는다. li = list(map(int, sys.stdin.readline().split()))
- 각 사람이 돈을 인출하는데 필요한 시간의 합을 저장할 변수를 생성하고 초기화한다. total = 0
- 각 사람이 돈을 인출하는데 필요한 시간을 저장할 변수를 생성하고 초기화한다. time = 0
- 모든 사람이 돈을 인출할 때까지 반복한다. while (len(li) != 0)
- 각 사람이 돈을 인출하는데 필요한 시간은 이전 사람이 돈을 인출하는데 총 걸린 시간에 현재 사람이 돈을 인출하는데 필요한 시간을 더해주면 된다. time += min(li)
- 현재 사람이 돈을 인출하는데 필요한 시간을 구했으면 이를 총 시간에 더해준다. total += time
- 현재 사람이 돈을 인출했으면 인출할 사람의 시간 리스트에서 삭제해 준다. li.remove(min(li))
- 모든 사람이 돈을 인출했으면 총 걸린 시간을 출력해 준다. print(total)
반응형
3. 소스코드
import sys
N = int(sys.stdin.readline())
li = list(map(int, sys.stdin.readline().split()))
total = 0
time = 0
while (len(li) != 0):
time += min(li)
total += time
li.remove(min(li))
print(total)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 2441번 : 별 찍기 - 4 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.11 |
---|---|
[백준] 10250번 : ACM 호텔 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.09 |
[백준] 1929번 : 소수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.09 |
[백준] 11047번 : 동전 0 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.09 |
[백준] 10870번 : 피보나치 수 5 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[백준] 10817번 : 세 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[백준] 2869번 : 달팽이는 올라가고 싶다 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[백준] 1260번 : DFS와 BFS - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.06 |