백준 1340번 연도 진행바 JAVA

YB·2025년 2월 24일

링크텍스트

설명


시간복잡도: 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);

	}
}

profile
안녕하세요

0개의 댓글