2022년 08월 03일 수요일 - 그냥 스크린샷은 윈도우에서 찍자...


오늘 올려볼 문제는 729번 My Calendar I 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

아우 그냥 회사에서 스샷만 찍고 올려야겠어... 맥 스크린샷 너무 불편해...


입력


사진에서도 볼 수 있듯이 메소드에 대한 파라매터로 int값 2개씩 입력으로 들어온다.



풀이 및 코드


이중 예약이 되지 않게끔 캘린더 클래스를 구현하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

TreeMap을 사용해서 근사값을 구하고 이를 통해서 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class MyCalendar {
    TreeMap<Integer, Integer> map = new TreeMap<>();
    
    public MyCalendar() {
        
    }
    
    public boolean book(int start, int end) {
        int s = -1, e = -1;
        if(map.floorKey(start) != null) {
            s = map.floorKey(start);
        }
        
        if(map.floorKey(--end) != null) {
            e = map.floorKey(end);
        }
        
        // start와 end의 floorKey값이 다르면 무조건 다른 일정과 겹쳐있다는 뜻이라서 이 구문 넣어줌
        if(s - e != 0) return false;
        
        if(s != -1 && start <= map.get(s)) return false;
        
        if(e != -1 && end <= map.get(e)) return false;
        
        map.put(start, end);
        
        return true;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘 문제는 주석 처리한 부분을 생각하지 못해서 생각보다 많이 틀렸다.

그리고 아오 맥은 스크린샷 매번 위치 지정해주는게 힘들어서 그냥 회사 윈도우에서 스크린샷만 찍어서 올려야겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts