-
강의실 배정코딩테스트/softeer 2023. 9. 10. 17:34
https://softeer.ai/practice/info.do?idx=1&eid=392
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
답안
import java.util.*; import java.io.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(in.readLine()); ArrayList<Reservation> list = new ArrayList<Reservation>(); for (int i = 0; i < n; i++){ StringTokenizer st = new StringTokenizer(in.readLine()); int startTime = Integer.parseInt(st.nextToken()); int endTime = Integer.parseInt(st.nextToken()); list.add(new Reservation(startTime, endTime)); } Collections.sort(list); int result = 0; int lastTime = 0; for (Reservation reservation: list){ if (reservation.startTime >= lastTime){ result++; lastTime = reservation.endTime; } } System.out.println(result); } public static class Reservation implements Comparable<Reservation>{ int startTime, endTime; public Reservation(int startTime, int endTime){ this.startTime = startTime; this.endTime = endTime; } public int compareTo(Reservation reservation){ return this.endTime - reservation.endTime; } } }
느낀점
난 무슨 각 예약 별 diff 도 구해서 비교해야되나싶어서.. 별 뻘짓을 다햇는데
이런 케이스에서는 끝나는시간기준으로 정렬해서 하나씩 넣으면 된단다..
정확하게 이해는 못했지만 테스트케이스를 작성해보면 정말 끝나는 시간 기준으로 정렬을 하면 어느정도 맞는것같다.
(예외 케이스는 못찾음)
'코딩테스트 > softeer' 카테고리의 다른 글
순서대로 방문하기 (0) 2023.09.10 자동차 테스트 (0) 2023.09.10 회의실 예약(java) (0) 2023.09.04 바이러스(java) (0) 2023.09.04 GBC(java) (0) 2023.09.04