-
[๋ฐฑ์ค(BOJ)] 1924๋ฒ 2007๋ , C์ธ์ด ํ์ดPS(Problem Solving)/C 2020. 7. 23. 12:24๋ฐ์ํ
<2007๋ >, 1924๋ฒ
๋ฌธ์
์ค๋์ 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
ํ์ด
์ด ๋ฌธ์ ๋ 2007๋ 1์ 1์ผ์ด ์์์ผ์ด๋ผ๋ ์กฐ๊ฑด๊ณผ ๊ฐ ๋ฌ๋ง๋ค ๋์ ๋ ์ ์ฃผ์ด์ ธ์ ์ด๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์๋ค. ๋๋ monthmax๋ผ๋ ๋ฐฐ์ด์ ์ ์ธํด์ ๋ฌธ์ ์ ์ฃผ์ด์ง ๊ฐ ๋ฌ์ ๋ง์ง๋ง ๋ ์ ์ ์ฅํ ํ์ for๋ฌธ์ ๋๋ ค์ ์ ๋ ฅ๋ฐ์ ๋ฌ์ ๋ฐ๋ก ๊ทธ ์ ๊น์ง์ ์ผ ์๋ฅผ ๊ตฌํ ๋ค์์ ์ ๋ ฅ๋ฐ์ ์ผ ์๋ฅผ ๋ํด์ ๊ฒฐ๊ตญ ๋ฌ์ ์ ์ธํ๊ณ ์ด ์ผ ์๋ฅผ ๊ตฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ผ์๋ฅผ 7๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ ๊ตฌํด์ ์์ผ์ ์ถ๋ ฅํ๋๋ก switch๋ฌธ์ ๋ง๋ค์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
#include <stdio.h> int main(void) { int x, y; int day = 0; int monthmax[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; scanf("%d %d", &x, &y); for (int i = 0; i < x - 1; i++) day += monthmax[i]; day += y; day = day % 7; switch (day) { case 0: printf("SUN"); break; case 1: printf("MON"); break; case 2: printf("TUE"); break; case 3: printf("WED"); break; case 4: printf("THU"); break; case 5: printf("FRI"); break; case 6: printf("SAT"); default: break; } return 0; }
๋ฐ์ํ