※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 25774번 문제인 Simplified Calander System이다.
문제는 아래 링크를 확인하자.

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

 

25774번: Simplified Calendar System

Consider a simplified calendar system where each year is 12 months and each month is 30 days, i.e., each year is 360 days. This sure makes the math easy, or does it? Given a date and what day of the week it is, determine what day of the week a second date

www.acmicpc.net

문제에서 주어지는 두 날짜를 특정 날짜(아래 코드에서는 1년1월1일)부터 몇 번째 날인지로 각각 표현하면 두 날짜 사이의 일수를 편하게 계산할 수 있다.

 

7일 주기로 요일이 달라진다는 점을 이용해, 위에서 계산한 두 날짜 사이 일수를 이용하여 두 번째 날짜의 요일을 계산하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

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

	int D1, M1, Y1, N1, D2, M2, Y2; cin >> D1 >> M1 >> Y1 >> N1 >> D2 >> M2 >> Y2;
	int d1 = D1 + (M1 - 1) * 30 + (Y1 - 1) * 360;
	int d2 = D2 + (M2 - 1) * 30 + (Y2 - 1) * 360;

	cout << (N1 + (d2 - d1) - 1) % 7 + 1;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 25859 // C++] Sort by Frequency  (0) 2022.11.10
[BOJ 25785 // C++] Easy-to-Pronounce Words  (0) 2022.11.10
[BOJ 25704 // C++] 출석 이벤트  (0) 2022.11.10
[BOJ 25270 // C++] 99 Problems  (0) 2022.11.10
[BOJ 25850 // C++] A Game Called Mind  (0) 2022.11.10

+ Recent posts