2007년
문제
오늘은 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
중 하나를 출력한다.
__해설__
해설이라 하기 그렇지만 내가 생각한 방법은 switch case문을 이용하는 방법이다.
요일을 기억하는 string 배열을 선언하고 총 일자를 7과 나머지 연산을 통해 요일을
구하는 방법이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <iostream> #include <string> using namespace std; int main(void) { string days[7] = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" }; int x, y; cin >> x >> y; int tmp = 0; for (int i = 1; i < x; ++i) { switch (i) { case 2: tmp += 28; continue; case 4: case 6: case 9: case 11: tmp += 30; continue; default: tmp += 31; } } tmp += y; int result = tmp % 7; cout << days[result]; } | cs |
'Study > Algorithm' 카테고리의 다른 글
[백준][11720][Loop] 숫자의 합 (0) | 2019.02.04 |
---|---|
[백준][2741][Loop] N번 출력 (0) | 2019.02.04 |
[백준][2839][Op] 설탕 배달 (0) | 2019.02.04 |
[백준][Op] A+B-2 (0) | 2019.01.29 |
[백준][Op] 나머지 연산 (0) | 2019.01.29 |