💻STUDY/BOJ

[BOJ] 1924. 2007년 (Python,C)

coldNoodlePigeon 2022. 1. 25.
  • 코딩 초보. 구현을 목표로 하였기에 비효율적일 수 있습니다.

1924. 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중 하나를 출력한다.

 


1.Python

 

x,y=map(int,input().split())
week=['SUN','MON','TUE','WED','THU','FRI','SAT']
days=0

for i in range(1,x):
    if i in [1,3,5,7,8,10,12]:
        days+=31
    elif i in [4,6,9,11]:
        days+=30
    elif i==2:
        days+=28
days+=y

print(week[days%7])

일수를 계산해주고 7로 나눈 나머지를 인덱스값으로 접근하여 출력하도록 하였다. 

 


2.C

 

#include <stdio.h>
main() {
	char* week[7] = { "SUN","MON","TUE","WED","THU","FRI","SAT"};
	int x, y,days=0;
	scanf("%d %d", &x, &y);

	for (int i = 1; i < x; i++) {
		if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) days += 31;
		else if (i == 4 || i == 6 || i == 9 || i == 11) days += 30;
		else if (i == 2) days += 28;
	}
	days += y; 
	printf("%s", week[days % 7]); 
}

비슷한 방식으로 구현했는데, 이때 week를 포인터형으로 하지 않으면 에러가 발생한다. 

댓글