반응형

백준 5575번 타임 카드 풀이 코드

C | C++ | Java | Python


풀이

입력을 초단위로 변환하고 차를 구한 후 다시 시, 분, 초로 변환하여 출력합니다. 간단히 시에는 3600, 분에는 60을 나누거나 곱하는 방법으로 변환할 수 있습니다.

코드

#include <stdio.h>

int main(){
    int i, sh, sm, ss, eh, em, es;
    int start, end, t, h, m, s;
    for(i = 0; i < 3; i++){
        scanf("%d %d %d %d %d %d", &sh, &sm, &ss, &eh, &em, &es);
        start = (sh*3600)+(sm*60)+ss;
        end = (eh*3600)+(em*60)+es;
        t = end - start;
        h = t/3600;
        m = (t%3600)/60;
        s = (t%3600)%60;
        
        printf("%d %d %d\n", h, m, s);
    }
    return 0;
}
#include <iostream>
using namespace std;

int main(){
    int sh, sm, ss, eh, em, es;
    int start, end, t, h, m, s;
    for(int i = 0; i < 3; i++){
        cin>>sh>>sm>>ss>>eh>>em>>es;
        start = (sh*3600)+(sm*60)+ss;
        end = (eh*3600)+(em*60)+es;
        t = end - start;
        h = t/3600;
        m = (t%3600)/60;
        s = (t%3600)%60;
        
        cout<<h<<" "<<m<<" "<<s<<endl;
    }
    return 0;
}
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for(int i = 0; i < 3; i++){
            int sh = sc.nextInt(), sm = sc.nextInt(), ss = sc.nextInt();
            int eh = sc.nextInt(), em = sc.nextInt(), es = sc.nextInt();
            int start = (sh*3600)+(sm*60)+ss;
            int end = (eh*3600)+(em*60)+es;
            int t = end - start;
            int h = t/3600;
            int m = (t%3600)/60;
            int s = (t%3600)%60;
            
            System.out.println(h + " " + m + " " + s);
        }
    }
}
for i in range(3):
    sh, sm, ss, eh, em, es = map(int, input().split())
    start = (sh*3600)+(sm*60)+ss
    end = (eh*3600)+(em*60)+es
    t = end - start
    h = t//3600
    m = (t%3600)//60
    s = (t%3600)%60
    
    print(h, m, s)

문제 출처

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

반응형

+ Recent posts