2022년 08월 03일 수요일 - 그냥 스크린샷은 윈도우에서 찍자...
오늘 올려볼 문제는 729번 My Calendar I 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 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 문제 풀이' 카테고리의 다른 글
[LeetCode] 387번 문제를 풀어보았다. (ft. java) (1) | 2022.08.16 |
---|---|
[LeetCode] 98번 문제를 풀어보았다. (ft. java) (0) | 2022.08.11 |
[LeetCode] 62번 문제를 풀어보았다. (ft. java) (0) | 2022.08.01 |
[LeetCode] 1647번 문제를 풀어보았다. (ft. java) (0) | 2022.06.28 |
[LeetCode] 665번 문제를 풀어보았다. (ft. java) (0) | 2022.06.25 |