반응형
https://school.programmers.co.kr/learn/courses/30/lessons/155651
호텔 대실 문제
호텔에 방이 몇개 필요한지 찾는 문제
#사용 알고리즘
정렬(Sort)
반응형
📌문제 접근 포인트
1. 시작하기전에 문자열로 주어진 시간 값을 int 타입으로 바꿔주자. 이때, 전부 분으로 맞춰주면 계산하기 편하다.
2. 숫자로 바꾸었다면 시작 시간을 기준으로 정렬해주자. 순차적으로 찾아야 저장된 값에 대해서 오류가 발생하지 않는다.
3. 예약시간을 탐색해나가면서 비교해보자. 현재 사용중인 방에 대해서 예약할 수 있는 방이 있다면(현재 끝 시간 + 10분) 시작시간으로 바꾸고, 그런 방이 탐색했을 때 없으면 방을 새로 추가해주는 형태로 구성해주면 된다.
⚙ 내가 푼 정답 코드
import java.util.*;
class Solution {
public static int timer(String t){
String[] time = t.split(":");
int h = Integer.parseInt(time[0]);
int m = Integer.parseInt(time[1]);
return h*60 + m;
}
public int solution(String[][] book_time) {
ArrayList<Integer> room = new ArrayList<>();
int n = book_time.length;
int[][] books_time = new int[n][2];
for (int i = 0 ; i < n; i++){
books_time[i][0] = timer(book_time[i][0]);
books_time[i][1] = timer(book_time[i][1]);
}
Arrays.sort(books_time, (a,b) -> a[0] - b[0]);
for (int[] book : books_time){
int start = book[0];
int end = book[1];
boolean flag = true;
for(int i = 0; i < room.size(); i++){
if(room.get(i) + 10 <= start){
room.set(i, end);
flag = false;
break;
}
}
if(flag){
room.add(end);
}
}
return room.size();
}
}
반응형
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 아날로그 시계 (Java) (0) | 2024.05.03 |
---|---|
[프로그래머스] 무인도 여행 (Java) (1) | 2024.05.01 |
[프로그래머스] 미로 탈출 명령어(Java) (1) | 2024.04.12 |
[프로그래머스] 혼자서 하는 틱택토(Java) (0) | 2024.04.12 |
[프로그래머스] 도넛과 막대 그래프 (Java) (0) | 2024.04.12 |
댓글