문제
현재 구름 프로젝트를 완수하기 위해서 N개의 기능 개발이 추가로 필요하다.
i번째 기능을 개발하는데 ci분의 시간이 걸린다.
작업을 시작한 시각은 T시 M분이다.
플레이어는 1번 기능부터 순서대로 개발을 진행하고, 한 기능 개발을 마치면 바로 다음 기능 개발을 시작한다.
플레이어가 모든 기능 개발을 끝마친 시각은?
생각할 것
나머지 연산을 응용해야 한다.
작업 시간을 입력받을 때마다 종료시각을 더해준다.
60분보다 크면 시각을 더하고, 60으로 나눈 나머지는 분으로 설정한다.
시각은 24시를 0으로 나타내야 하므로 24의 나머지로 설정한다.
처음에는 if(M>=60)
의 조건을 추가했었는데, 나누었을 때 60보다 작으면 어차피 0이므로 제거했다.
코드
#include <iostream>
using namespace std;
int main() {
int N, T, M, c;
cin >> N;
cin >> T >> M;
for(int i=0; i<N; i++){
cin >> c;
M += c; // 분을 더해준다
T += M / 60; // 60분 넘으면 시각을 추가
M %= 60; // 남은 분
T %= 24; // 시각은 24시를 넘으면 다시 0으로 돌아감
}
cout << T << " " << M;
return 0;
}
반응형
'Problem solving > goorm' 카테고리의 다른 글
[구름톤 챌린지] 통증 (2) (C++) (0) | 2023.08.31 |
---|---|
[구름톤 챌린지] 발전기 (2) (C++) (0) | 2023.08.31 |
[구름톤 챌린지] 합 계산기 (C++) (0) | 2023.08.16 |
[구름톤 챌린지] 운동 중독 플레이어 (C++) (0) | 2023.08.14 |