Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 토익공부법
- pip
- 미네르바 대학
- pdf 다운로드
- minerva university
- ai model collapse
- cv2
- 토익
- ADsP
- 데이터관련자격증
- students@ai seoul hackathon
- 논문 pdf
- arXiv
- 탑싯
- 토익문제
- 데이터분석
- ai공모전
- 토익공부
- scaico
- 크롬 확장프로그램
- 토익문법
- TOPCIT
- 코드프렌즈
- 프론트
- toeic
- ai consensus
- 환급형프론트챌린지
- 논문 pdf 이름
- 탑싯시험
- model collapse
Archives
- Today
- Total
토리의 데굴데굴 공부일기
[백준] 11399 ATM Python 본문
문제 출처 : www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
문제 설명: ATM에 줄을 서 있는 모든 사람이 업무를 마치는 순간까지 걸리는 시간이 최소가 되게 하는 문제이다.
문제 풀이: 앞의 대기 시간이 줄어들면 뒤의 사람의 대기시간이 줄어드는 것이 보장되기 때문에 항상 적은 숫자가 앞으로 가야 최적해를 찾을 수 있다.
아이디어
1. sort 함수를 사용하여 오름차순 정렬한다
2. 예시를 보고 규칙을 찾아 숫자가 N-(인덱스값)만큼 반복되어 더해진다는 걸 찾았다
코드
#11399 ATM
N = int(input())
p = list(map(int, input().split()))
#오름차순 정렬
p.sort()
#시간 총합
total_time = 0
for i in range(N):
total_time += p[i] * (N-i)
print(total_time)
'Algorithm' 카테고리의 다른 글
[백준] 11866번 요세푸스 문제 0 Python (0) | 2024.03.30 |
---|---|
[알고리즘] ch06. 정렬 (0) | 2023.08.16 |
[알고리즘] ch05. DFS,BFS (0) | 2023.08.10 |
[백준] 10162 전자레인지 Python (0) | 2023.08.06 |
[알고리즘] ch03. 그리디 알고리즘(Greedy Algorithm) (0) | 2023.08.04 |