본문 바로가기
CS(Computer Science)지식/[C++][코딩 테스트] 자료구조 및 알고리즘

백준 1924번: 2007년 (C++)

by 엔지니어 청년 2024. 1. 31.

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

해당 문제를 가장 쉽게 접근하는 방법은 2007년 1월 1일부터 몇 일이 지났는지 계산하고 월, 화, 수, 목, 금, 토, 일 이 주기적으로 반복되는 원리를 이용하여 특정 날짜의 요일을 찾을 수 있다 코드는 아래와 같다.

#include <bits/stdc++.h>
using namespace std;

int arr[13] = {0, 31, 28 ,31 , 30, 31, 30, 31,31,30,31,30,31 };

int main()
{
  int sumDay=0;

  int x,y;
  cin >> x >> y;
  for(int i=1 ; i<=x; i++)
  {
    if(i==x)
    {
      sumDay+= y;
    }
    else
    {
      sumDay+=arr[i];
    }
  }

  int sel = sumDay % 7;
  //cout << sumDay << '\n';
  switch(sel)
  {
    case 1 : 
    cout << "MON" << '\n';
    break;
    case 2:
    cout << "TUE" << '\n';
    break;
    case 3:
    cout << "WED" << '\n';
    break;
    case 4:
    cout << "THU" << '\n';
    break;
    case 5:
    cout << "FRI" << '\n';
    break;
    case 6:
    cout << "SAT" << '\n';
    break;
    case 0:
    cout << "SUN" << '\n';
    break;
  
  }
}