Skip to content

Commit 109de95

Browse files
authored
[20250711] BOJ / G3 / 공주님의 정원 / 이강현
1 parent 8e3ca21 commit 109de95

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
```java
2+
import java.util.*;
3+
import java.io.*;
4+
5+
public class Main{
6+
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
static StringTokenizer st;
9+
static int N;
10+
static List<int[]> flowers;
11+
static int[] current = {3,1};
12+
static int[] maxCoverage = new int[2];
13+
static int cnt = 0;
14+
static boolean isCover;
15+
16+
public static void main(String[] args) throws Exception{
17+
N = Integer.parseInt(br.readLine());
18+
flowers = new ArrayList<>();
19+
20+
for (int i = 0; i < N; i++) {
21+
st = new StringTokenizer(br.readLine());
22+
int startMonth = Integer.parseInt(st.nextToken());
23+
int startDay = Integer.parseInt(st.nextToken());
24+
int endMonth = Integer.parseInt(st.nextToken());
25+
int endDay = Integer.parseInt(st.nextToken());
26+
flowers.add(new int[]{startMonth, startDay, endMonth, endDay});
27+
}
28+
29+
flowers.sort((a,b) -> {
30+
if(a[0] == b[0]){
31+
if(a[1] == b[1]){
32+
if(a[2] == b[2]){
33+
return Integer.compare(a[3], b[3]);
34+
}else{
35+
return Integer.compare(a[2], b[2]);
36+
}
37+
}else{
38+
return Integer.compare(a[1], b[1]);
39+
}
40+
}else{
41+
return Integer.compare(a[0], b[0]);
42+
}
43+
});
44+
45+
for (int[] flower : flowers) {
46+
if(flower[0]<current[0] || (flower[0] == current[0] && flower[1]<=current[1])){
47+
if(maxCoverage[0] < flower[2]){
48+
maxCoverage[0] = flower[2];
49+
maxCoverage[1] = flower[3];
50+
}else if(maxCoverage[0] == flower[2] && maxCoverage[1] < flower[3]){
51+
maxCoverage[1] = flower[3];
52+
}
53+
}else if(flower[2] > maxCoverage[0] || (flower[2] == maxCoverage[0] && flower[3] > maxCoverage[1])){
54+
current[0] = maxCoverage[0];
55+
current[1] = maxCoverage[1];
56+
cnt++;
57+
if(flower[0]<current[0] || (flower[0] == current[0] && flower[1]<=current[1])){
58+
if(maxCoverage[0] < flower[2]){
59+
maxCoverage[0] = flower[2];
60+
maxCoverage[1] = flower[3];
61+
}else if(maxCoverage[0] == flower[2] && maxCoverage[1] < flower[3]){
62+
maxCoverage[1] = flower[3];
63+
}
64+
}
65+
}
66+
if(maxCoverage[0]>11 || (maxCoverage[0] == 11 && maxCoverage[1]>30)){
67+
cnt++;
68+
isCover = true;
69+
break;
70+
}
71+
}
72+
if(isCover){
73+
bw.write(cnt+"");
74+
}else{
75+
bw.write("0");
76+
}
77+
bw.close();
78+
}
79+
}
80+
```

0 commit comments

Comments
 (0)