[LeetCode] Determine if Two Events Have Conflict

아르당·2026년 9월 10일

LeetCode

목록 보기
519/563
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

두 개의 문자열 배열 event1과 event2가 주어지고, 같은 날에 일어난 두 개의 이벤트를 나타낸다.

  • event1 = [startTime1, endTime1]
  • event2 = [startTime2, endTime2]

이벤트 시간은 HH:MM 형태의 유효한 24시간 형식이다.
충돌은 두 이벤트가 공집합이 아닌 교집합을 가질때 발생한다.
두 이벤트 사이에 충돌이 있다면 true를 반환해라. 그렇지 않다면 false 반환해라.

Example

#1
Input: event1 = ["01:15", "02:00"], event2 = ["02:00", "03:00"]
Output: true
Explanation: 두 이벤트는 2:00에 충돌한다.

#2
Input: event1 = ["01:00", "02:00"], event2 = ["01:20", "03:00"]
Output: true
Explanation: 두 이벤트는 01:20에서 02:00까지 충돌한다.

#3
Input: event1 = ["10:00", "11:00"], event2 = ["14:00", "15:00"]
Output: false
Explanation: 두 이벤트는 충돌하지 않는다.

Constraints

  • event1.length == event2.length == 2
  • event1[i].length == event2[i].length == 5
  • startTime1 <= endTime1
  • startTime2 <= endTime2
  • 모든 이벤트 시간은 HH:MM 형태를 따른다.

Solved

class Solution {
    public boolean haveConflict(String[] event1, String[] event2) {
        int start1 = toMinutes(event1[0]);
        int end1 = toMinutes(event1[1]);
        int start2 = toMinutes(event2[0]);
        int end2 = toMinutes(event2[1]);

        return start1 <= end2 && start2 <= end1;
    }

    private int toMinutes(String time){
        return Integer.parseInt(time.substring(0, 2)) * 60 + Integer.parseInt(time.substring(3));
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글