728x90
반응형
https://www.acmicpc.net/problem/12764
N명의 사람이 싸지방을 이용하는 경우를 구하는 거니, 최대 N개의 싸지방 자리가 필요로 함
0번쨰부터 N번째까지 돌면서 끝나는 시간이 본인의 시작시간보다 작거나 같으면 해당 자리를 사용할 수 있음
0명이 사용한 자리가 나올때까지 출력하도록 하면 됩니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Node[] arr = new Node[n];
for(int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i] = new Node(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
Arrays.sort(arr);
int[] num = new int[n], count = new int[n];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(num[j] <= arr[i].s) {
num[j] = arr[i].e;
count[j]++;
break;
}
}
}
int answer = 0;
StringBuilder sb = new StringBuilder();
for(int a : count) {
if(a != 0) {
sb.append(a).append(" ");
answer++;
}
}
System.out.print(answer + "\n" + sb);
}
}
class Node implements Comparable<Node> {
int s, e;
public Node(int s, int e) {
this.s = s;
this.e = e;
}
@Override
public int compareTo(Node o) {
return this.s - o.s;
}
}
728x90
반응형
'백준 > 10001 - 15000' 카테고리의 다른 글
[백준] 13308번 : 주유소 (0) | 2024.12.01 |
---|---|
[백준] 14226번 : 이모티콘(JAVA) (0) | 2021.12.28 |
[백준] 10026번 : 적록색약(JAVA) (0) | 2021.11.02 |
[백준] 11003번 : 최솟값 찾기(JAVA) (0) | 2021.10.31 |
[백준] 12015번 : 가장 긴 증가하는 부분 수열2(JAVA) (0) | 2021.09.09 |
댓글