티스토리 뷰

반응형

https://softeer.ai/practice/info.do?idx=1&eid=392 

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai

[문제]

김교수는 강의실 1개에 최대한 많은 강의를 배정하려고 한다. 배정된 강의는 서로 겹치지 않아야 하며 수업시간의 길이와 상관없이 최대한 강의를 많이 배정하라. 단, 두 강의의 시작시간과 종료시간은 겹쳐도 된다. 

 

[풀이]

import java.util.*;
import java.io.*;


public class Main
{
   static int N; // 1 N <= 1000000
	static int[][] LECTURE; // 1 S,F <= 1000000000
	static int COUNT, END;
	
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		N = Integer.parseInt(br.readLine());
		
		LECTURE = new int[N][2];
		
		for (int i = 0; i < N; i++)
		{
			StringTokenizer st = new StringTokenizer(br.readLine());
			
			LECTURE[i][0] = Integer.parseInt(st.nextToken());
			LECTURE[i][1] = Integer.parseInt(st.nextToken());
		}
		
		Arrays.sort(LECTURE, (o1, o2) -> Integer.compare(o1[1], o2[1]));
		
		COUNT = END = 0;
		
		for (int i = 0; i < N; i++)
		{
			if (END <= LECTURE[i][0])
			{
				COUNT++;
				END = LECTURE[i][1];
			}
		}
		
		System.out.println(COUNT);
		
		br.close();
	}
}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함