안경잡이 구루루

백준 2525 (오븐 시계) [C programming] [VS/Visual Studio] 본문

C언어(C programming)/문제풀이(백준,BaekJoon)

백준 2525 (오븐 시계) [C programming] [VS/Visual Studio]

구루루(gururu) 2023. 11. 3. 14:24
반응형

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

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net

 


나:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int a, b, c;
	scanf("%d %d", &a, &b);
	scanf("%d", &c);
	if (b + c >= 60) {
		a = a + ((b + c) / 60);
		b = (b + c) % 60;
		if (a >= 24) {
			a = a % 24;
		}
	}
	else {
		b = b + c;
	}
	printf("%d %d", a, b);

	return 0;
}

완성된 코드는 위와 같다.

 

우선 VS의 sancf() 오류를 막기 위해 #define _CRT_SECURE_NO_WARNINGS 선언함.

 

첫째 줄에는 현재 시각 a,b 를 받기 위해 정수형 변수 수언후 scanf()를 통해 정수형으로 입력받고 필요한 시간인 c 또한 정수형으로 입력받음.

 

에 해당하는 b가 1시간인 60분을 넘는지 안넘는지에 따라 시간의 단위가 바뀌기 때문에 

입력받은 c와 기존의 b의 합이 60 이상인 경우와 이외의 경우 둘로 if, else로 나누었다.

 

<if 구문>에서 

시간은 몫을 기존a에 더하고 이때 24시간 이상의 경우 24로 나눈 나머지가 시간이 되도록 구현함.

분은 단위의 기준인 60을 나머지가 되도록 구현했다.

 

<else>구문에서는

단위의 변화가 존재하지 않기 때문에 그저 더한값을 분에 반영해주면 된다.

반응형