난이도 : D2
문제번호 : 1948
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
월 일로 이루어진 날짜를 2개 입력 받아, 두 번째 날짜가 첫 번째 날짜의 며칠째인지 출력하는 프로그램을 작성하라. |
제약사항
월은 1 이상 12 이하의 정수이다. 각 달의 마지막 날짜는 다음과 같다. 1/31, 2/28, 3/31, 4/30, 5/31, 6/30, 7/31, 8/31, 9/30, 10/31, 11/30, 12/31 두 번째 날짜가 첫 번째 날짜보다 항상 크게 주어진다. |
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 4개의 수가 주어진다. 첫 번째 수가 월을 나타내고 두 번째 수가 일을 나타낸다. 그 다음 같은 형식으로 두 번째 날짜가 주어진다. |
출력
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.) |
예시
입력 | 출력 |
3 |
#1 31 #2 103 #3 161 |
2. 문제풀이
달의 차이만큼의 일수를 더해주고 마지막 입력으로 들어온 달의 일수와 처음입력으로 들어온 달의 일을 그달의 총일에서 빼준값을 더해주고 그 값을 출력했습니다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <iostream>
using namespace std;
//1948 D2 날짜 계산기
int main() {
//전체 반복횟수
int len, days[12]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//달과 일을 입력받음
int month[2], day[2];
cin >> len;
for (int l = 1; l <= len; l++) {
cin >> month[0] >> day[0] >> month[1] >> day[1];
int result = 0;
//달의 차이만큼 날짜 더해주기
for (int i = month[0] - 1; i < month[1] - 1; i++) {
result += days[i];
}
result += day[1] - (day[0] - 1);
cout << "#" << l << " " << result << endl;
}
return 0;
}
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
간단한 소인수분해 C++(SW Expert Academy) (0) | 2020.02.14 |
---|---|
간단한 압축풀기 C++(SW Expert Academy) (0) | 2020.02.13 |
두 개의 숫자열 python,C++(SW Expert Academy) (0) | 2020.02.11 |
숫자 배열 회전 C++(SW Expert Academy) (0) | 2020.02.10 |
쉬운 거스름돈 C++(SW Expert Academy) (0) | 2020.02.09 |
댓글