난이도 : D2
문제번호 : 1976
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
시 분으로 이루어진 시각을 2개 입력 받아, 더한 값을 시 분으로 출력하는 프로그램을 작성하라. |
제약사항
시는 1 이상 12 이하의 정수이다. 분은 0 이상 59 이하의 정수이다. |
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 4개의 수가 주어진다. 첫 번째 수가 시를 나타내고 두 번째 수가 분을 나타낸다. 그 다음 같은 형식으로 두 번째 시각이 주어진다. |
출력
출력의 각 줄은 '#t'로 시작하고 공백을 한 칸 둔 다음, 시를 출력하고 공백을 한 칸 둔 다음 분을 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.) |
예시
입력 | 출력 |
3 3 17 1 39 8 22 5 10 6 53 2 12 |
#1 4 56 #2 1 32 #3 9 5 |
2. 문제풀이
시간 더하기는 시간을 분으로 바꿔준 후 계산해주시면 편합니다. 입력받은 시간을 분으로 바꾼후 더한다음 다시 시간과 분으로 바꾸어 처리했습니다. 예외처리가 하나필요한데 0시가면 12시로 바꾸어 표기해주어야 합니다. |
3. 소스코드
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
|
#include <iostream>
#include <string>
using namespace std;
//D2 1976 시각덧셈
int main(){
int length;
cin >> length;
//테스트 케이스만큼 반복
for(int i=1; i<=length; i++){
//시간과 분, 분의합을 위한 변수
int h1, h2, h3= 0, m1, m2, m3 = 0, sum = 0;
cin >> h1 >> m1 >> h2 >>m2;
//모든 시간을 분으로 바꾸어 처리한다.
sum = h1*60 + m1 + h2*60 + m2;
//분을 시간으로 바꾼다.
h3 = (sum/60) %12;
//남은 분을 계산한다.
m3 = sum%60;
//0시 라면 12시로 바꿔주기
if(!h3) h3 = 12;
cout << "#" << i << " " <<h3 <<" " <<m3 << endl;
}
return 0;
}
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
쉬운 거스름돈 C++(SW Expert Academy) (0) | 2020.02.09 |
---|---|
스도쿠 검증 C++, Python(SW Expert Academy) (0) | 2020.02.08 |
어디에 단어가 들아갈 수 있을까 C++(SW Expert Academy) (0) | 2020.02.06 |
파스칼삼각형 C++,Python(SW Expert Academy) (0) | 2020.02.05 |
간단한 369게임 C++(SW Expert Academy) (0) | 2020.02.04 |
댓글