알고리즘 모음(C++)

백준 1924 - 2007년(C++) 본문

백준

백준 1924 - 2007년(C++)

공대생의 잡다한 사전 2023. 4. 10. 17:25

문제 링크입니다. https://www.acmicpc.net/problem/1924

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net

수학을 이용한 구현 문제입니다.

날짜를 입력받아 요일을 출력하는 문제입니다.

 

예를 들어, 3월 14일인 경우, 1월과 2월의 날짜 수와 14를 더해 총 일수를 구합니다,

총 일수를 7로 나눈 뒤, 나머지를 따라서 요일을 정해주면 됩니다.

0 -> 일요일 ~ 6-> 토요일로 정해주면 구할 수 있습니다.

 

자세한 것은 코드를 참고해주세요

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#define P pair<int, int>
#define F first
#define S second
#define INF 987654321
using namespace std;

int x, y;
int years[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string days[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};

int main(){
    cin.tie(0);
    cout.tie(0);
    int day = 0;
    cin >> x >> y;    
    for(int i = 1; i < x; i++){
        day += years[i-1];
    }
    day += y;
    cout << days[day%7];
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요

'백준' 카테고리의 다른 글

백준 15596 - 정수 N개의 합(C++)  (0) 2023.04.10
백준 5622 - 다이얼(C++)  (0) 2023.04.10
백준 2445 - 별 찍기 - 8(C++)  (0) 2023.04.10
백준 2523 - 별 찍기 - 13(C++)  (0) 2023.04.10
백준 2446 - 별 찍기 - 9(C++)  (0) 2023.04.10