Algorithm/SW Expert Academy

[SWEA] 4229 태혁이의 사랑은 타이밍

SSONGMI 2021. 2. 23. 21:40
반응형

문제 출처: SW Expert Academy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

: 태혁이가 소개팅 약속시간부터 바람맞았다는 사실을 알게 된 시간까지의 소요시간을 분으로 나타내는 문제이다.

 

: 만약에 태혁이가 소개팅 시간 전에 차이게 된다면, 즉 주어진 태혁이의 시간이 11일 11시 11분보다 전이면 -1을 출력한다.

: 먼저 소개팅 약속시각인 11일 11시 11분을 분으로 만들어주고 태혁이가 바람맞은 것을 깨닫게 된 시각을 분으로 만들어 그 차이를 구하면 된다.

: 일은 24시간으로 이루어져있고, 1시간은 60분으로 이루어져 있기 때문에 일을 나타내는 D에 24와 60을 곱해준다.

: 시간은 60분으로 이루어져있기 때문에 H에 60을 곱해주면 분으로 표시할 수 있다.

: 분 M은 그대로 해서 전체 값에 더해준다.

: 위와 같은 방식으로 해서 각각의 시각을 분으로 바꿀 수 있고 태혁이의 시각에서 소개팅 시각까지를 빼주면 그 차이를 구할 수 있다. 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StringBuilder sb = new StringBuilder();
	static StringTokenizer st;
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		// 테스트케이스 수 입력
		int T = Integer.parseInt(br.readLine());
		
		// 테스트 케이스 만큼 반복
		for(int tc = 1; tc <= T; tc++) {
			// 일, 시, 분 입력(11<=D<=14   0 <= H <= 23   0 <= M <=59)
			st = new StringTokenizer(br.readLine());
			int D = Integer.parseInt(st.nextToken());
			int H = Integer.parseInt(st.nextToken());
			int M = Integer.parseInt(st.nextToken());
			// 전체를 분 기준으로 맞춤
			int date = 11*24*60 + 11 * 60 + 11;
			// 태혁이가 기다린 분
			int min = D*24*60 + H * 60 + M;
			int ans = date > min ? -1 : min-date;
			sb.append(String.format("#%d %d\n", tc, ans));
		}
		System.out.println(sb);
	}
}
반응형