알고리즘
[백준] 2884 알람시계 (Java)
God Korea
2022. 7. 27. 23:43
728x90
알고리즘 입문으로 상당히 괜찮은 문제다. 아마 프로그래밍을 이제 막 시작한 사람들은 한 번 쯤 거쳐가는 문제이지 않을까..?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{ // BufferedReader.readLine 메서드를 이용하면 반드시 예외처리를 진행해주어야 함.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 입력값 대체할 클래스로 Scanner 가 있다. 훨씬 편하고 좋지만.. 더 빠른 입출력 관리를 위해서는 Buffer 관련 클래스가 좋다는..
StringTokenizer st = new StringTokenizer(br.readLine()); // 문자열을 분리해주는 클래스 StringTokenizer
int h = Integer.parseInt(st.nextToken()); // 시를 입력받는다.
int m = Integer.parseInt(st.nextToken()); // 분을 입력받는다.
if (h > 0 && m < 45) {
System.out.println((h - 1) + " " + (60 + (m - 45))); // 시간이 양수이고, 분이 45분 이상일때
} else if (h == 0 && m < 45) {
System.out.println((24 + (h - 1)) + " " + (60 + (m - 45))); // 시간이 0 이고 분이 45분 이하일때
} else {
System.out.println(h + " " + (m - 45)); // 시간은 양수이고, 분이 45분 이하일때.
}
} // 총 3가지 경우가 있어 if-else문으로 처리했다. if문 만 써서도 해결은 가능하다.
} // 시간이 음수일 수는 없기 때문에 0 이하가 되면 23시 로 바꿔줘야 하고, 분 또한 60분이 되면 시간을 추가해주거나 0분이 되면 시간을 빼주어야 한다.
// 시간의 특성만 알면 쉽게 풀 수 있는 문제다.
728x90