문제 바로가기 : https://www.acmicpc.net/problem/28070
메모리 : 81764KB
시간 : 612ms
언어 : Java 11
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static <T> void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st;
int[] dp = new int[10010 * 12];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
String[] str1 = st.nextToken().split("-");
String[] str2 = st.nextToken().split("-");
int year = Integer.parseInt(str1[0]);
int month = Integer.parseInt(str1[1]);
dp[year * 12 + month] += 1;
year = Integer.parseInt(str2[0]);
month = Integer.parseInt(str2[1]);
dp[year * 12 + month + 1] -= 1; //전역달에도 군대에 있음. 다음달에 나와요
}
int max = 0;
int idxmonth = 0;
for (int i = 1; i < 10010 * 12; i++) {
//누적합으로 최대값 구하기
dp[i] += dp[i - 1];
if (max < dp[i]) {
idxmonth = i;
max = dp[i];
}
}
int year = idxmonth / 12;
String month = "";
if (idxmonth % 12 == 0) { //month가 0일때 12월이다.
year--;
month = "12";
} else if (idxmonth % 12 < 10) {
month = "0" + (idxmonth % 12);
} else if (idxmonth % 12 >= 10) {
month = (idxmonth % 12) + "";
}
String ans = year + "-" + month;
System.out.println(ans);
}
}
imos 알고리즘
'Algorithm' 카테고리의 다른 글
[Algo] 백준 2636 치즈 JAVA (0) | 2024.05.07 |
---|---|
[Algo] 백준 25049 뮤직 플레이리스트 JAVA (0) | 2024.05.07 |
[Algo] 백준 28017 게임을 클리어하자 JAVA (0) | 2024.05.07 |
[Algo] 백준 28069 김밥천국의 계단 JAVA (0) | 2024.05.07 |
[Algo] 백준 17396 백도어 JAVA (0) | 2024.05.07 |