작성일 :

문제 링크

13223번 - 소금 폭탄

설명

입력으로 현재 시간소금 폭탄의 투하 시간이 주어졌을 때,

로봇 팔이 소금을 투하할 때 까지 걸리는 시간을 계산하는 문제입니다.

현재 시간의 초 단위 값소금 투하 시간의 초 단위 값 의 차이를 구하고,

만약 차이가 음수라면, 24시간 을 더해주어 양수 값으로 변환해줍니다.

구한 차이의 값을 , , 로 변환하여 출력 형식에 맞게 출력합니다.


Code

[ C# ]

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
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var curTime = Console.ReadLine()!;
      var saltTime = Console.ReadLine()!;

      var curHour = int.Parse(curTime.Substring(0, 2));
      var curMin =  int.Parse(curTime.Substring(3, 2));
      var curSec = int.Parse(curTime.Substring(6, 2));

      var saltHour = int.Parse(saltTime.Substring(0, 2));
      var saltMin = int.Parse(saltTime.Substring(3, 2));
      var saltSec = int.Parse(saltTime.Substring(6, 2));

      var curTimeInSec = curHour * 3600 + curMin * 60 + curSec;
      var saltTimeInSec = saltHour * 3600 + saltMin * 60 + saltSec;

      var diffTime = saltTimeInSec - curTimeInSec;
      if (diffTime <= 0) diffTime += 86400;

      var resHour = diffTime / 3600;
      var resMin = (diffTime % 3600) / 60;
      var resSec = (diffTime % 3600) % 60;

      Console.WriteLine($"{resHour:D2}:{resMin:D2}:{resSec:D2}");

    }
  }
}



[ C++ ]

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 <bits/stdc++.h>

using namespace std;

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

  string curTime, saltTime; cin >> curTime >> saltTime;

  int curHour = stoi(curTime.substr(0, 2)),
      curMin = stoi(curTime.substr(3, 2)),
      curSec = stoi(curTime.substr(6, 2)),
      saltHour = stoi(saltTime.substr(0, 2)),
      saltMin = stoi(saltTime.substr(3, 2)),
      saltSec = stoi(saltTime.substr(6, 2));

  int curTimeInSec = curHour * 3600 + curMin * 60 + curSec,
      saltTimeInSec = saltHour * 3600 + saltMin * 60 + saltSec;

  int diffTime = saltTimeInSec - curTimeInSec;
  if (diffTime <= 0) diffTime += 86400;

  int resHour = diffTime / 3600,
      resMin = (diffTime % 3600) / 60,
      resSec = (diffTime % 3600) % 60;

  cout << setw(2) << setfill('0') << resHour << ":" <<
          setw(2) << setfill('0') << resMin << ":" <<
          setw(2) << setfill('0') << resSec << "\n";

  return 0;
}