목표 : 시 분으로 이루어진 시각을 2개 입력받아 더한 값을 시 분으로 출력
- 12시간제
분이 시로 넘어갈 때와 시가 12를 넘어갈 때 등의 경우를 처리해주면 될 것 같다.
분을 먼저 더하고 시를 더하는데, 분은 60이상일 때와 아닐 때를 나눈다. 시는 12이상일 때와 아닐 때를 구분한다.
for(test_case = 1; test_case <= T; ++test_case)
{
int t1, t2, m1, m2;
scanf("%d%d%d%d", &t1, &m1, &t2, &m2);
printf("#%d ", test_case);
if(m1+m2 >=60){
if(t1+t2+1 > 12){
printf("%d %d\n", t1+t2+1-12, m1+m2-60);
}else{
printf("%d %d\n", t1+t2+1, m1+m2-60);
}
}else{
if(t1+t2 > 12){
printf("%d %d\n", t1+t2-12, m1+m2);
}else{
printf("%d %d\n", t1+t2, m1+m2);
}
}
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
+전에 풀었던 코드
#include <stdio.h>
#include <stdlib.h>
int main(void){
int t, i, j;
int *T, *S;
scanf("%d", &t);
T = (int*)malloc(sizeof(int)*t*4);
S = (int*)malloc(sizeof(int)*t*2);
for(i=0; i<t*4; i++) scanf("%d", &T[i]);
for(i=0, j=0; i<t*4; i=i+4, j=j+2){
if(T[i+1]+T[i+3]>=60){
if(T[i]+T[i+2]+1 >= 12){
S[j] = T[i] + T[i+2] + 1 - 12;
S[j+1] = T[i+1] + T[i+3] - 60;
}
else{
S[j] = T[i] + T[i+2] + 1;
S[j+1] = T[i+1] + T[i+3] - 60;
}
}
else{
if(T[i]+T[i+2] >= 12){
S[j] = T[i] + T[i+2] - 12;
S[j+1] = T[i+1] + T[i+3];
}
else{
S[j] = T[i] + T[i+2];
S[j+1] = T[i+1] + T[i+3];
}
}
}
for(i=0, j=1; i<t*2; i=i+2, j++) printf("#%d %d %d\n", j, S[i], S[i+1]);
return 0;
}
'SWEA > [D2]' 카테고리의 다른 글
[C언어] SWEA 1986 지그재그 숫자 (0) | 2022.02.27 |
---|---|
[C언어] SWEA 1946 간단한 압축 풀기 (0) | 2022.02.26 |
[C언어] SWEA 1983 조교의 성적 매기기 (0) | 2020.08.30 |
[C언어] SWEA 1979 어디에 단어가 들어갈 수 있을까 (0) | 2020.08.30 |
[C언어] SWEA 1959 두 개의 숫자열 (0) | 2020.08.23 |