728x90
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
문제
오늘은 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일까지 있다.
코드
//1924
#include <iostream>
using namespace std;
int main() {
int x, y;
int day = 0;
int month[12] = { 31,28, 31, 30, 31, 30,31,31,30, 31, 30, 31 };
string week[7] = { "SUN","MON", "TUE", "WED", "THU", "FRI", "SAT" };
cin >> x >> y;
for (int i = 0; i < x-1; i++) {
day += month[i];
}
day += y;
day %= 7; //일주일은 7일
cout << week[day] << endl;
return 0;
}
출력
고찰
처음 코드를 작성할 때 배열을 사용하지 않고 1~12일때 모두 if 조건문으로 하나씩 더해주었다.
다른 사람들의 코드를 참고하여 배열을 사용하여 month배열에 며칠까지 있는지 저장하고, 출력을 위한 week 배열도 만들어주었다.
728x90
'알고리즘 > 백준' 카테고리의 다른 글
알고리즘(C++) / 백준 2501 : 약수 구하기 (0) | 2021.02.16 |
---|---|
알고리즘(C++) / 백준 2438, 2440, 2445, 10991, 10992 : 별찍기 (0) | 2021.02.16 |
알고리즘(C++) / 백준 11718, 11719 : 그대로 출력하기 (0) | 2021.02.16 |
알고리즘(C++) / 백준 1000, 10950, 10951, 10952, 10953, 11021, 11022 / A+B (0) | 2021.02.16 |
알고리즘(C++) / 백준 2557 'Hello World' (0) | 2021.02.16 |
댓글