[백준/Java] 1931 - 회의실 배정

2025. 9. 5. 11:24·코딩테스트/백준

https://www.acmicpc.net/problem/1931

문제


풀이

처음엔 너무 어렵게 생각해서 이중 for문으로 각각 비교하면서 진행하는 것으로 구현했다

당연히 시간 초과가 났다

다시 생각해보니 for문 하나를 사용해서 이전 끝나는 시간을 변수에 저장하고

다음 회의 시작 시간과 비교하면서 끝나는 시간을 갱신하면 된다

 

끝나는 시간을 기준으로 정렬하고 같다면 시작 시간을 기준으로 정렬하는 것이 핵심

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Main {

    static int N;
    static int[][] work;

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        // 회의 수 입력
        N = Integer.parseInt(br.readLine());
        work = new int[N][2];

        // 회의 시간 입력
        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < 2; j++) {
                work[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        // 끝나는 시간을 기준으로 오름차순 정렬
        // 끝나는 시간이 같으면 시작 시간을 기준으로 정렬
        Arrays.sort(work, (o1, o2) -> o1[1] == o2[1] ? Integer.compare(o1[0], o2[0]) : Integer.compare(o1[1], o2[1]));

        int cnt = 0;
        int end = 0;
        for (int i = 0; i < N; i++) {
            // 끝나는 시간이 다음 회의 시작 시간보다 작거나 같으면
            // 횟수를 늘리고
            // 끝나는 시간 갱신
            if (end <= work[i][0]) {
                cnt++;
                end = work[i][1];
            }
        }

        System.out.println(cnt);
    }
}

결과

'코딩테스트/백준' 카테고리의 다른 글
  • [백준/Java] 1654 - 랜선 자르기
  • [백준/Java] 2667 - 단지번호붙이기
  • [백준/Java] 1514 - 잃어버린 괄호
  • [백준/Java] 16935 - 배열 돌리기 3
KDH.dev
KDH.dev
  • KDH.dev
    CodingHard
    KDH.dev
  • 전체
    오늘
    어제
    • 전체글 (82)
      • 코딩테스트 (74)
        • 프로그래머스 (13)
        • 백준 (61)
      • CS (4)
        • 네트워크 (4)
      • Spring (1)
      • Java (3)
        • 자료구조 (3)
        • 알고리즘 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    부트캠프후기
    30804
    16935
    백준
    자료구조
    17626
    네트워크
    프로그래머스
    멀티캠퍼스it부트캠프
    18111
    5525
    자바
    21736
    코딩테스트
    14940
    [LG유플러스] 유레카 백엔드 개발자
    프로그래머스 Lv.0
    13913
    11660
    CS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
KDH.dev
[백준/Java] 1931 - 회의실 배정
상단으로

티스토리툴바