문제 출처: https://www.acmicpc.net/problem/2525
1. 코드
import java.util.*;
class Time{
private int clock, min, cook;
Time(int clock, int min, int cook){
this.clock = clock;
this.min = min;
this.cook = cook;
}
public void CookTimeCheck() { //요리 시간 계산
for(; cook >= 60; cook -= 60) //요리 시간이 1시간 이상인 경우
ClockTimeCheck(); //시 단위만 증가
if(cook > 0) //그 외의 경우 분 단위만 증가
MinTimeCheck();
}
private void ClockTimeCheck() { //시 단위 증가
if((clock += 1) > 23)
clock = 0;
}
private void MinTimeCheck() { //분 단위 증가
if((min += cook) > 59) {
min -= 60;
ClockTimeCheck();
}
}
public int getClock() {
return clock;
}
public int getMin() {
return min;
}
}
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Time t = new Time(sc.nextInt(), sc.nextInt(), sc.nextInt());
t.CookTimeCheck();
System.out.println(t.getClock() + " " + t.getMin());
sc.close();
}
}
2. 풀이
Time 클래스를 생성자에 입력값을 넣어 현재 시각과 요리 시간의 정보를 저장해주고 CookTimeCheck 함수를 통해서 요리 시간이 완료된 시간을 계산해주는데 그 과정을 별도의 함수로 만들어서 시 단위의 변화는 ClockTimeCheck 함수로 확인하고 분 단위의 변화는 MinTimeCheck 함수를 통해서 계산한 뒤 요리가 완료된 시각 정보를 출력한다.
3. 느낀점
자바에 대해 아직 어색해서 클래스로 따로 나누니 생각보다 시간이 걸려서 우선 mian 함수에 모든 과정을 적어보고 그 내용을 기반으로 클래스와 여러 함수들로 나누어 작성했다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 25304번: 영수증(자바 Java) (0) | 2022.10.10 |
---|---|
백준 알고리즘 2480번: 주사위 세개(자바 Java) (0) | 2022.10.09 |
백준 알고리즘 25083번: 새싹(자바 Java) (0) | 2022.10.07 |
백준 알고리즘 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 (자바 Java) (0) | 2022.10.06 |
백준 알고리즘 18108번: 1998년생인 내가 태국에서는 2541년생?! [Java] (1) | 2022.10.05 |