λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Algorithm

[SW Expert Academy] - (D3)4299. νƒœν˜μ΄μ˜ μ‚¬λž‘μ€ 타이밍

by 주발2 2020. 7. 17.
λ°˜μ‘ν˜•

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWLv6mx6htoDFAVV&categoryId=AWLv6mx6htoDFAVV&categoryType=CODE

 

SW Expert Academy

SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”!

swexpertacademy.com

μ½”λ“œ

import java.util.Scanner;

public class Solution {
	
	private static final int DAY_MINUTES = 1440; // ν•˜λ£¨
	private static final int HOUR_MINUTES = 60;  // ν•œμ‹œκ°„

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int t = scan.nextInt();
		for(int tc=1; tc<=t; tc++) {
			int D = scan.nextInt();	// 일
			int H = scan.nextInt();	// μ‹œ
			int M = scan.nextInt();	// λΆ„
			int ans = 0;
			
			if(D == 11 && (H<11 || (H == 11 && M < 11))) {	// μ†Œκ°œνŒ… μ•½μ†μ‹œκ°„ μ „μΌκ²½μš°
				ans = -1;
			} else if(D == 11 && H == 11 && M == 11) {	// 약속 μ‹œκ°„κ³Ό λ™μΌν•œ 경우
				ans = 0;
			} else {	// μ•½μ†μ‹œκ°„ 이후인 경우
				ans += ((D-11) * DAY_MINUTES) + ((H-11) * HOUR_MINUTES) + (M-11);
			}
			
			System.out.println("#" + tc + " " + ans);
			
		}
		
		scan.close();
	}

}

풀이

μ†Œκ°œνŒ… 약속 μ‹œκ°„μ€ 11λ…„ 11μ›” 11일 11μ‹œ 11λΆ„ 이고, μ£Όμ–΄μ§€λŠ” λ³€μˆ˜λŠ” D,H,M(일, μ‹œ, λΆ„) 이닀.

 

λ¬Έμ œμ—μ„œ DλŠ” 11<=D<=14 μ΄λ―€λ‘œ, 11보닀 μž‘μ•„μ§€λŠ” κ²½μš°λŠ” μ—†λ‹€.

 

μ†Œκ°œνŒ… μ•½μ†μ‹œκ°„ μ „μΌκ²½μš°μ˜ μ‘°κ±΄μ—λ§Œ 쑰금 신경을 써주면 λ˜λŠ”λ°,

 

 1) D = 11 이고, H < 11인경우 -> M에 상관없이 무쑰건 μ†Œκ°œνŒ… μ•½μ†μ‹œκ°„ μ „μ˜ κ²½μš°λ‹€.

 2) D = 11 이고, H = 11μΌλ•Œ -> M이 11보닀 μž‘μ€κ²½μš° μ†Œκ°œνŒ… μ•½μ†μ‹œκ°„ μ „μ˜ κ²½μš°λ‹€.

  - ex) 11일 11μ‹œ 10λΆ„ -> μ•½μ†μ‹œκ°„ μ „μ˜ 경우.

 

λ”°λΌμ„œ μœ„μ˜ κ²½μš°μ—λŠ” μ•½μ†μ‹œκ°„ μ „μ΄λ―€λ‘œ -1을, 

μ†Œκ°œνŒ… μ•½μ†μ‹œκ°„κ³Ό λ™μΌν•œ 경우 0을,

μ•½μ†μ‹œκ°„ 이후인 경우 D, H, M 을 κΈ°μ€€μœΌλ‘œ μ‹œκ°„μ„ ꡬ해주면 λœλ‹€.

λ°˜μ‘ν˜•

λŒ“κΈ€