ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 2530번 : 인공지능 시계 (C 언어)
    c c++ 언어 공부 2023. 7. 2. 13:53

    https://www.acmicpc.net/problem/2530

     

    2530번: 인공지능 시계

    첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0

    www.acmicpc.net

    Code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include <stdio.h>
     
    int main() {
        int a, b, c;
        scanf("%d %d %d"&a, &b, &c);
        int d;
        scanf("%d"&d);
        int br=0, cr=0;
        int bb=0, cc=0;
        cr = d % 60;
        cc = d / 60;
        c += cr;
        while (c > 59)
        {
                c -= 60;
                cc++;
        }
        br = cc % 60;
        bb = cc / 60;
        b += br;
        while (b > 59)
        {
                b -= 60;
                bb++;
        }
        a += bb;
        while (a > 23)
        {
                a -= 24;
        }
        printf("%d %d %d", a, b, c);
        return 0;
    }
    cs

    문제 설명

    KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 합니다. 이 인공지능 오븐은 적당한 양의 오리 훈제 재료를 오븐에 넣으면 오븐구이가 끝나는 시간을 초 단위로 자동으로 계산합니다. 또한, 오븐 앞면에는 디지털 시계가 있어 훈제오리구이 요리가 끝나는 시각을 사용자에게 알려줍니다.

    훈제오리구이를 시작하는 시각과 오븐구이에 필요한 시간이 초 단위로 주어질 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성해야 합니다.

    입력

    첫째 줄에는 현재 시각이 주어집니다. 현재 시각은 시 A (0 ≤ A ≤ 23), 분 B (0 ≤ B ≤ 59), 초 C (0 ≤ C ≤ 59)의 정수로 주어지며, 이들은 빈칸을 사이에 두고 주어집니다.

    둘째 줄에는 요리하는 데 필요한 시간 D (0 ≤ D ≤ 500,000)가 초 단위로 주어집니다.

    출력

    종료되는 시각을 시, 분, 초의 형태로 공백을 사이에 두고 출력합니다. 단, 시는 0부터 23까지의 정수이며, 분과 초는 0부터 59까지의 정수입니다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0분 0초가 됩니다.

    코드 설명

     

    먼저 a, b, c 변수에 현재 시각을 입력받고, d 변수에 요리하는 데 필요한 시간을 입력받습니다.

    다음으로, 요리하는 데 필요한 시간을 초로 변환한 후, 분 단위로 변환하기 위해 cr, cc 변수를 사용합니다. cr은 초 단위로 변환한 시간의 나머지이며, cc은 분 단위로 변환한 시간입니다.

    그 후, 초 단위로 변환한 시간을 현재 시간에 더합니다. 이때, 초 단위로 변환한 시간이 59를 초과할 경우 분 단위로 올려주고 초 단위는 60을 초과하지 않도록 보정합니다. 마찬가지로, 분 단위로 변환한 시간이 59를 초과할 경우 시 단위로 올려주고 분 단위는 60을 초과하지 않도록 보정합니다. 마지막으로, 시 단위가 23을 초과할 경우 24를 빼주어 시간을 조정합니다.

    마지막으로, 계산된 시간을 출력합니다.

    이렇게 작성된 코드는 주어진 현재 시각과 요리에 필요한 시간을 이용하여 오븐구이가 끝나는 시각을 계산하고, 그 값을 출력합니다.

     

Designed by Tistory.