C분 이후의 시각을 계산한다.
| Python | C++ | C | |
|---|---|---|---|
| 연산자 - 실수 나눗셈 기호 - 정수 나눗셈 기호 - 나머지 계산 기호 | / // % | / % | / % |
| 몫과 나머지 계산 | div, mod = divmod( denom, num ) | - | - |
1 N = int(input())
2 T, M = map(int, input().split())
3
4 works = [int(input()) for _ in range(N)]
5
6 hour, M = divmod(M + sum(works), 60)
7 T = (T + hour) % 24
8 print(T, M)
개발이 필요한 기능의 개수 N을 입력받는다.
시간과 분을 T와 M에 입력받는다.
N개의 줄에 나누어 입력되는 데이터를 works 리스트에 저장한다.
기능 개발에 필요한 시간의 총합(분)과 현재 시각의 M 분을 더하고, 60으로 나누어 hour 시간 M분으로 업데이트한다.
현재 시각의 T 시간과 hour 시간을 더하고, 24로 나누어 경과한 시간을 계산한다.
개발 종료 시각을 출력한다.
1 #include <iostream>
2 using namespace std;
3 int main() {
4 int N, T, M;
5 cin >> N;
6 cin >> T >> M;
7
8 int works = 0, work;
9 for (int i = 0; i < N; i++){
10 cin >> work;
11 works += work; // M에 바로 더해도 됨
12 }
13
14 M += works;
15 T = (T + M / 60) % 24;
16 M %= 60;
17
18 cout << T << " " << M << endl;
19 return 0;
20 }
1 #include <stdio.h>
2 int main() {
3 int N, T, M;
4 int work;
5 int i;
6
7 scanf("%d", &N);
8 scanf("%d %d", &T, &M);
9
10 for (i = 0; i < N; i++){
11 scanf("%d", &work);
12 M += work;
13 }
14
15 T = (T + M / 60) % 24;
16 M %= 60;
17
18 printf("%d %d", T, M);
19 return 0;
20 }

정수 나눗셈 기호는 파이썬의 독특한 산술 연산자이다. 버전 2.x까지는 다른 프로그래밍 언어들과 마찬가지로 slash(/) 기호를 사용해 정수 / 정수 = 정수 계산을 했지만, 버전 3.x부터 실수 나눗셈 기호(/)와 정수 나눗셈 기호(//)를 분리해 사용하도록 했다.
PEP 238에 따르면, 다음과 같은 2가지 이유로 정수 나눗셈 기호를 도입했다고 한다.
2 / 4 = 0.5를 출력하도록 수정하고자 하였다. 파이썬에서 몫과 나머지를 구할 때 2가지 방법을 사용할 수 있다.
div, mod = divmod( 5, 2)
print(div, mod) # 출력 결과: 2, 1
divmod 함수는 몫과 나머지를 계산해서 튜플 형식으로 반환한다.
div = 5 // 2
mod = 5 % 2
print(div, mod) # 출력 결과: 2, 1
time = (T * 60 + M + sum(c)) % 1440
hour = time // 60
minute = time % 60
숫자를 크게 만드는 것 같아서 이 방법은 안 썼는데, 파이썬의 읽기 쉬운 코드에 더 적합한 코드인가?
int main() {
int N, T, M;
cin >> N >> T >> M;
}
cin >> N >> T >> M;\n나 공백이나 상관없이 사용해도 됨C/C++에서 배열을 안 쓰려고 했더니 오히려 짧은 코드가 나왔다.