작성일 :

문제 링크

2530번 - 인공지능 시계

설명

현재 시각에 초 단위의 시간을 더한 후, 시, 분, 초 단위로 변환해 출력하는 문제입니다.

  • 현재 시각은 , , 로 주어집니다.
  • 여기에 초 단위의 시간이 추가되며, 그 결과를 다시 , , 형태로 출력해야 합니다.
  • 시는 0~23, 분과 초는 0~59 범위를 벗어날 수 없으므로, 덧셈 후 단위별로 보정해야 합니다.

접근법

  • 우선 현재 초에 추가 초를 더해 새로운 초를 계산합니다.
  • 60으로 나누어 으로 넘겨야 하는 값을 구하고, 나머지는 최종 초로 저장합니다.
  • 위에서 얻은 값은 기존 분과 더하고, 다시 60을 기준으로 를 넘기는 값을 분리합니다.
  • 최종 는 기존 시에 값을 더하고, 24를 초과하는 경우에는 다시 0~23 범위로 보정합니다.

Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;

class Program {
  static void Main() {
    var time = Console.ReadLine().Split();
    int h = int.Parse(time[0]);
    int m = int.Parse(time[1]);
    int s = int.Parse(time[2]);

    int add = int.Parse(Console.ReadLine());

    m += (s + add) / 60;
    s = (s + add) % 60;
    h += m / 60;
    m %= 60;
    h %= 24;

    Console.WriteLine($"{h} {m} {s}");
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int h, m, s, needS; cin >> h >> m >> s >> needS;
  m += (s + needS) / 60;
  s = (s + needS) % 60;
  h += m / 60;
  m %= 60;
  h %= 24;

  cout << h << " " << m << " " << s << "\n";

  return 0;
}