본문 바로가기

그리디 알고리즘2

[백준] 1931번 회의실 배정 - Python 문제 링크: https://www.acmicpc.net/problem/1931 이 문제에서 필요한 아이디어는 그리디 알고리즘을 사용하여 최대한 많은 회의를 배정하는 것입니다. 핵심 아이디어종료 시간 기준 설정 회의를 종료 시간을 기준으로 정렬합니다. 이는 가장 빨리 끝나는 회의부터 고려하기 위함입니다. 종료 시간이 같을 경우, 시작 시간을 기준으로 추가 정렬합니다.겹치지 않는 회의 선택 현재 고려 중인 회의의 시작 시간이 이전에 선택된 회의의 종료 시간보다 크거나 같은 경우에만 해당 회의를 선택합니다.이 아이디어는 항상 현재 상황에서 최선의 선택을 한다는 그리디 알고리즘의 원칙을 따릅니다. 그럼 코드를 확인해 보겠습니다.import sysfrom typing import List, Tupleinput =.. 2024. 12. 10.
[백준] 11399번 ATM - Python(1편) https://www.acmicpc.net/problem/11399이 문제는 주어지는 데이터를 오름차순으로 정렬한 후, 정렬된 리스트를 순회하면서 각 사람의 대기 시간을 더해나가면 되는 쉬운 문제입니다. 아마 대부분의 사람들이 이런 방식으로 문제를 풀지 않았을까 싶습니다. 다른 풀이 방법들은 다음 글에서 설명하도록 하고, 코드를 확인해 보겠습니다. N = int(input())data = list(map(int, input().split()))data.sort()total_time = 0waiting_time = 0for time in data: waiting_time += time # 현재 사람의 대기 시간을 더함 total_time += waiting_time # 총 대기 시간에 추가p.. 2024. 12. 9.