728x90
반응형
2007년 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
2 초 | 128 MB | 83466 | 39738 | 33716 | 48.689% |
문제
오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.
입력
첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
출력
첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.
예제 입력 1
1 1
예제 출력 1
MON
예제 입력 2
3 14
예제 출력 2
WED
예제 입력 3
9 2
예제 출력 3
SUN
예제 입력 4
12 25
예제 출력 4
TUE
과정
처음에는 조건을 주어 가며 하려고 했는데, 생각 해 보니 굳이 그러지 않아도 되었다.
어차피 더하려고 하는 것이니, 배열에 미리 값을 담아 넣고 반복하며 더해주었다.
굉장히 간단한 로직이다.
1월 1일이 월요일이므로 0으로 시작하기 편하게 해 주기 위해 일요일부터로 계산 해 주었다.
결과
//
// Created by 전시은 on 2023/02/24.
//
// 문제 :: 2007년
// 링크 :: https://www.acmicpc.net/problem/1924
// 입력 :: 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
// 출력 :: 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
string day[7] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int x, y, result = 0;
cin >> x >> y;
for(int i = 0; i < x-1; i++)
{
result += month[i];
}
cout << day[(result + y) % 7];
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 쇠막대기 - 백준 10799 (0) | 2023.03.03 |
---|---|
[알고리즘] 그림 - 백준 1926 (0) | 2023.02.27 |
[알고리즘] 연속합 - 백준 1912 (0) | 2023.02.24 |
[알고리즘] 미로 탐색 - 백준 2178 (0) | 2023.02.20 |
[알고리즘] 동전 0 - 백준 11047 (0) | 2023.02.16 |