링크텍스트

설명

시간복잡도: O(1), 공간복잡도: O(1)
코드
import java.util.*;
import java.io.*;
class Main {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(),",: ");
String [] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
int [] days = {31,28,31,30,31,30,31,31,30,31,30,31};
String month = st.nextToken();
int day = Integer.parseInt(st.nextToken());
int year = Integer.parseInt(st.nextToken());
int hour = Integer.parseInt(st.nextToken());
int minute = Integer.parseInt(st.nextToken());
boolean isLeap = (year%4==0 && year%100!=0) || (year%400==0);
if(isLeap) days[1]=29;
int totalMinutes = 0;
for(int d : days) totalMinutes += d*24*60;
double totalSeconds = totalMinutes * 60.0;
int pastMinutes = 0;
for(int i=0;i<12;i++){
if(months[i].equals(month)) break;
pastMinutes += days[i]*24*60;
}
pastMinutes += (day-1)*24*60;
pastMinutes += (hour*60)+minute;
double pastSeconds = pastMinutes*60.0;
System.out.println((pastSeconds/totalSeconds)*100.0);
}
}
