백준 5585 - 거스름돈 ( Python )
https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 그리디 알고리즘의 대표격이라고 할 수 있는 문제인 것 같다 제한시간: 10분 1. 모든 동전을 내림차순으로 정렬 2. 정렬한 배열을 순회하며 거스름돈을 해당 동전으로 나눈 몫을 카운팅 3. 나눈 몫 * 동전 를 거스름돈에서 빼준다. coins = [500, 100, 50, 10, 5, 1] pay = int(input()) change = 1000 - pay count = 0..
2022. 11. 29.
백준 11399 - ATM( Python )
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 예제 풀이 n = 5 p = [ 3, 1, 4, 3, 2 ] 적게 기다리는 순으로 우선 오름 차순 정렬을 해줘야한다 sorted = [ 1, 2, 3, 3, 4 ] 1 1 + 2 = 3 1 + 2 + 3 = 6 1 + 2 + 3 + 3 = 9 1 + 2 + 3 + 3 + 4 = 13 => 1 + 3 + 6 + 9 + 13 = 32 즉, 1부터 이전 값을 계속 반복하며 더하는 문제이다. 2중 for문으로 해결이 가능하다 n = ..
2022. 11. 23.