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

+ Recent posts