InputOutput(1)_The Annual 2007_1924

1 minute read

백준 입출력(1)의 1924번 문제 2007년을 풀이해보도록 하겠습니다.

문제 URL : https://www.acmicpc.net/problem/1924

이번 코드 정말 스스로 부족하다고 많이 느꼈습니다.
여러 방법이 있다는 것은 사실이지만..ㅠㅠ

  1. 이럴거면 자료형을 왜 배웠는가..
  2. 코드 올리기 매우 부끄럽다.
  3. 하지만 성장과정이라 생각하고 기록해야지..
  4. 이러고도 어떻게 내가 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





개인이 공부하고 포스팅하는 블로그입니다. 작성한 글 중 오류나 틀린 부분이 있을 경우 과감한 지적 환영합니다!

Categories:

Updated: