SMALL
https://www.acmicpc.net/problem/1931
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
- 문제
- 문제풀이
입력받은 활동들을 종료시간을 기준으로 오름차순으로 정렬한다. 반복문을 사용하여 정렬된 리스트를 순회하며, 각 활동의 시작 시간과 현재까지 선택된 활동들 중 마지막으로 종료된 활동의 종료 시간을 비교한다. 만약 시작 시간이 현재까지 선택된 활동들 중 마지막으로 종료된 활동의 종료 시간보다 크거나 같다면, 해당 활동을 선택하고 count를 증가시키며, time 변수를 해당 활동의 종료 시간으로 업데이트한다.
- 코드 1
using System.Text;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
StringBuilder stringBuilder= new StringBuilder();
int N = int.Parse(Console.ReadLine());
List<(int,int)> list=new List<(int,int)>();
for(int i=0; i<N; i++)
{
string[] zoom = Console.ReadLine().Split();
int a = int.Parse(zoom[0]);
int b = int.Parse(zoom[1]);
list.Add((a,b));
}
list = list.OrderBy(b => b.Item2).ThenBy(b => b.Item1).ToList();
int count = 0;
int time = 0;
for (int i = 0; i < N; i++)
{
if (time <= list[i].Item1)
{
count++;
time = list[i].Item2;
}
}
Console.WriteLine(count);
}
}
}
- 후기
그리디 알고리즘을 활용해 컴퓨터에게 노가다를 시킨다.
LIST
'백준 > C#' 카테고리의 다른 글
[C#]백준 13305번: 주유소 (0) | 2023.07.19 |
---|---|
[C#]백준 11399번: ATM (0) | 2023.07.19 |
[C#]백준 2630번: 색종이 만들기 (0) | 2023.03.29 |
[C#]백준 24460번: 특별상이라도 받고 싶어 (0) | 2023.03.29 |
[C#]백준 1786번: 찾기 (0) | 2023.03.15 |