https://school.programmers.co.kr/learn/courses/30/lessons/155651
나의풀이
import java.util.*;
class Solution {
public int solution(String[][] book_time) {
int answer = 0;
List<Integer[]> list = new ArrayList<>();
//시작시간이 빠른 순으로 정렬
Arrays.sort(book_time, (o1, o2) ->
o1[0].equals(o2[0]) ?
o1[1].replace(":","").compareTo(o2[1].replace(":","")) :
o1[0].replace(":","").compareTo(o2[0].replace(":",""))
);
for(String[] temp:book_time){
int start =Integer.valueOf(temp[0].split(":")[0]) * 60 + Integer.valueOf(temp[0].split(":")[1]);
int end =Integer.valueOf(temp[1].split(":")[0]) * 60 + Integer.valueOf(temp[1].split(":")[1]);
for(Integer[] li: list){
if(li[1]+10 <= start){
list.remove(list.indexOf(li)); //기존 객실 삭제
break;
}
}
list.add(new Integer[]{start, end}); //새로운 객실로 등록
}
answer = list.size();
return answer;
}
}
놓칠 수 있는 포인트
객실 시간 문자열을 그대로 int형으로 변환해버리면 00시 XX분인 케이스에서 실패하기 때문에 유의!
'코테풀이' 카테고리의 다른 글
[프로그래머스] 마법의 엘리베이터 java 풀이 (LEVEL2) (0) | 2023.05.29 |
---|---|
[프로그래머스] 멀쩡한 사각형 java 풀이( LEVEL2) (0) | 2023.05.29 |
[프로그래머스] 줄 서는 방법 java 풀이 (LEVEL2) (0) | 2023.05.22 |
[프로그래머스] 연속된 부분 수열의 합 java 풀이(LEVEL2) (0) | 2023.05.22 |
[프로그래머스] 롤케이크 자르기 java풀이 (LEVEL2) (0) | 2023.05.20 |