InputOutput(1)_The Annual 2007_1924
백준 입출력(1)의 1924번 문제 2007년을 풀이해보도록 하겠습니다.
문제 URL : https://www.acmicpc.net/problem/1924
이번 코드 정말 스스로 부족하다고 많이 느꼈습니다.
여러 방법이 있다는 것은 사실이지만..ㅠㅠ
- 이럴거면 자료형을 왜 배웠는가..
- 코드 올리기 매우 부끄럽다.
- 하지만 성장과정이라 생각하고 기록해야지..
- 이러고도 어떻게 내가 4학년인가..
등등 의 생각을 했습니다.
기초가 탄탄하다고 스스로 자부했는데 전혀 아니라는 자각을 하게되었습니다.ㅎ ㅎ열심히 해야겠네요. 많이 열심히
Source Code :
#include <stdio.h>
int main(void) {
/* 변수 정의 */
int m, d, dayOfTheWeek = 0, stride = 0;
/* 입력 */
scanf("%d %d", &m, &d);
/* 처리 */
for (int tmp_m = 1; tmp_m <= m; tmp_m++) {
if (tmp_m == m) { // 해당 달의 경우 일자 세기
stride = d % 7;
}
else {
if (tmp_m == 2) { // 2월은 28일까지
stride = 0;
}
else if (tmp_m < 8) { // 2월 아니고 8월 미만
if (tmp_m % 2 == 0) { // 짝수 달의 경우 30일까지
stride = 30 % 7;
}
else { // 홀수 달의 경우 31일까지
stride = 31 % 7;
}
}
else { // 8월 이상
if (tmp_m % 2 == 0) { // 짝수 달의 경우 31일까지
stride = 31 % 7;
}
else { // 홀수 달의 경우 30일까지
stride = 30 % 7;
}
}
}
dayOfTheWeek += stride; // 요일 더하기
dayOfTheWeek = dayOfTheWeek % 7; // 요일 정산
}
/* 출력 */
if (dayOfTheWeek == 0) {
printf("SUN");
}
else if (dayOfTheWeek == 1) {
printf("MON");
}
else if (dayOfTheWeek == 2) {
printf("TUE");
}
else if (dayOfTheWeek == 3) {
printf("WED");
}
else if (dayOfTheWeek == 4) {
printf("THU");
}
else if (dayOfTheWeek == 5) {
printf("FRI");
}
else if (dayOfTheWeek == 6) {
printf("SAT");
}
return 0;
}
제 코드보다 훨씬 더 좋은 방법이라고 생각한 풀이를 올려주신 블로그의 링크를 걸어두겠습니다.
https://rightbellboy.tistory.com/67
개인이 공부하고 포스팅하는 블로그입니다. 작성한 글 중 오류나 틀린 부분이 있을 경우 과감한 지적 환영합니다!