Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/05   »
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 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

피너클의 it공부방

백준 2530 인공지능 시계 (c++) : 피너클 본문

백준

백준 2530 인공지능 시계 (c++) : 피너클

피너클 2022. 5. 20. 16:12
728x90
반응형

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

 

2530번: 인공지능 시계

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

www.acmicpc.net

수학문제다.

int a, b, c, d;
cin >> a >> b >> c >> d;

숫자들을 입력받은다음

while (d >= 3600) {
	a += 1;
	d -= 3600;
}

만약 d가 3600보다 크다면 (1시간 = 3600초)

a에 1을 더하고 d에서 3600을 뺀다.

while (d >= 60) {
	b += 1;
	d -= 60;
}
c += d;

만약 d가 60보다 크다면 (1분 = 60초)

b에 1을 더하고 d에서 60을 뺀다.

그후 c에 d를 더한다.

while (c >= 60) {
	b += 1;
	c -= 60;
}

만약 c가 60보다 크다면

b에 1을 더하고 c에서 60을 뺀다.

while (b >= 60) {
	a += 1;
	b -= 60;
}

 

만약 b가 60보다 크다면

a에 1을 더하고 b에서 60을 뺀다.

while (a >= 24) {
	a -= 24;
}
cout << a << ' ' << b << ' ' << c << endl;

그후 a가 24보다 크다면 a에서 24를 빼준뒤

a, b, c를 출력한다.

#include <iostream>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int a, b, c, d;
	cin >> a >> b >> c >> d;
	while (d >= 3600) {
		a += 1;
		d -= 3600;
	}
	while (d >= 60) {
		b += 1;
		d -= 60;
	}
	c += d;

	while (c >= 60) {
		b += 1;
		c -= 60;
	}
	while (b >= 60) {
		a += 1;
		b -= 60;
	}
	while (a >= 24) {
		a -= 24;
	}
	cout << a << ' ' << b << ' ' << c << endl;
}

전체코드다.

728x90
반응형
Comments