
목차
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
코드
#include <iostream>
using namespace std;
int main() {
int months[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string days[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int x, y;
cin >> x >> y;
for(int i=1; i<x; i++) y += months[i];
cout << days[y % 7];
}
풀이
주어진 월 일에 따른 2007년의 요일을 구하는 문제입니다.
X월 Y일이 주어진다면
((X-1)월 까지의 일 + Y) 를 7로 나눈 나머지료 요일을 구해주면 됩니다.
1월 1일의 경우에는
((1-1)월 까지의 일 + 1), 즉 1이고 7로 나눈 나머지가 1일때 "MON" 입니다.
그러므로 나머지 0~6기준으로 일월화수목금토 가 되겠습니다.
'공부 > 백준' 카테고리의 다른 글
백준 17202번: 핸드폰 번호 궁합(C++) (0) | 2020.12.08 |
---|---|
백준 17269번: 이름궁합 테스트(C++) (0) | 2020.12.07 |
백준 5597번: 과제 안 내신 분..?(C++) (0) | 2020.12.05 |
백준 9655번: 돌 게임(C++) (0) | 2020.12.04 |
백준 1158번: 요세푸스 문제(C++) (0) | 2020.12.03 |