[C]백준_5554 : 심부름 가는 길

Alal11·2022년 5월 5일
0
post-thumbnail

➡️문제 링크

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

➡️문제

승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다.

집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자.

하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오.

➡️입력

입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다.

첫 번째 줄에 집에서 학교까지의 이동 시간을 나타내는 초가 주어진다.
두 번째 줄에 학교에서 PC방까지의 이동 시간을 나타내는 초가 주어진다.
세 번째 줄에 PC방에서 학원까지의 이동 시간을 나타내는 초가 주어진다.
마지막 줄에 학원에서 집까지의 이동 시간을 나타내는 초가 주어진다.
집에 늦게 가면 혼나기 때문에, 총 이동시간은 항상 1 분 0 초 이상 59 분 59 초 이하이다.

➡️출력

총 이동시간 x 분 y 초를 출력한다. 첫 번째 줄에 x를, 두 번째 줄에 y를 출력한다.


➡️문제 분석

집에서 학교, 학교에서 PC방, PC방에서 학원, 학원에서 집까지의 이동시간(초)을 모두 더한다.
그 이동시간을 60(초)으로 나눈 몫이 분이 되고, 나머지가 초가 된다.

➡️코드(⭕)

#include <stdio.h>

int main(void)
{
	int a, b, c, d;

	scanf_s("%d", &a);
	scanf_s("%d", &b);
	scanf_s("%d", &c);
	scanf_s("%d", &d);

	printf("%d\n", (a + b + c + d) / 60);
	printf("%d", (a + b + c + d) % 60);

	return 0;
}

<코드 분석>

집->학교->PC방->학원->집 까지 걸린 시간(초)을 각각 a, b, c, d라고 한다.
이동 시간을 줄마다 따로 입력받기 위해 scanf_s도 줄마다 따로 썼다.
모두 더한 이동시간을 60으로 나눈 몫과 나머지를 구하기 위해 산술연산자(/, %)를 사용하여 출력했다.

➡️end

getchar()를 쓰는 이유가 뭔지 드디어 감이 오기 시작한다.
문자열에서만 getchar()를 쓰는 것을 이번에 알게 되었으니 다음부턴 실수하지 않고 제대로 적용해보자.

0개의 댓글