백준 - 오븐시계

이용만·2023년 4월 14일
0

내가 쓴 코드.
24시 이상부터 어떻게 해야할지 고민했다.

package com.sparta.algorithm.algorithm;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String hourMinute = sc.nextLine();
        int ovenTime = sc.nextInt();
        int standard = 60;

        //시간과 분을 분리한다.
        String[] divide = hourMinute.split(" ");
        int hour = Integer.parseInt(divide[0]);
        int minute = Integer.parseInt(divide[1]);

        // 분리한 분 단위와 ovenTime의 합이 standard보다 크면
        if(ovenTime + minute > standard) {
            // 분리한 분 단위와 ovenTime의 합에 standard을 나누어 몫을 분리한 시간에 더하고
            hour = hour + ((ovenTime + minute) / standard);
            //이 때 hour가 24시 이상이 되면 시간을 0으로 바꿔 몫을 더하고
            if (hour >= 24) {
                hour = 0;
                hour = (ovenTime + minute) / standard;
                if(hour >= 1) hour = hour - 1 ;
                //나머지 분을 더한다.
                minute = (ovenTime + minute) % standard;
            }
            //그렇지 않으면 hour에 몫을 시간에 더하고 나머지를 분에 더한다.
            else {
                minute = (ovenTime + minute) % standard;
            }
        }
        // hour보다 크지 않으면
        //분리한 분에 ovenTime을 더한다.
        else {
            minute = minute +ovenTime;
        }

        System.out.println(hour + " " + minute);
    }
}

매우 지저분하다..
수도코드 작성한다고 더 지저분해짐^^;

결국 구글링 후 변환된 코드

import java.util.Scanner;

public class B2525 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt(); // 시
		int B = sc.nextInt(); // 분
		int C = sc.nextInt(); // 요리하는데 필요한 시간(분 단위)
		sc.close();

		int total = 60 * A + B + C; // 총 시간을 분으로 바꾸기

		// 24시간 넘어가면 0시간 0분으로 리셋하기. 24시간은 1440분
		if (total >= 1440) {
			total -= 1440;
			A = total / 60;
			B = total % 60;
			System.out.println(A + " " + B);
		} else {
			A = total / 60;
			B = total % 60;
			System.out.println(A + " " + B);
		}
	}

}
profile
성장하는 개발자가 되고자 합니다.

0개의 댓글