티스토리 뷰

BaekJoon/C

[BaekJoon/C] 백준 1924번 2007년

Gabii_Y 2018. 11. 12. 10:48
반응형




이번 포스팅은 백준 알고리즘 사이트의 1924번 2007년 문제를 C 언어로 코딩해보겠습니다. 아래 url로 접속하시면 문제를 볼 수 있습니다.


https://www.acmicpc.net/problem/1924


지난 백준 알고리즘 포스팅과 같은 단계로 for문 사용해보기 단계의 문제입니다.



이 문제의 경우 사용자로부터 월, 일에 해당하는 정수형 x와 y를 입력 받고, 입력 받은 월/일에 해당하는 요일이 언제인지를 출력해주는 문제입니다.


주어진 입력에 대해 어떻게 처리를 해서 해당 요일을 반환할 것인지를 생각해보시면 도움이 될 것 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
void main() {
    int x, y, i, day = 0;
    int monthArr[12= { 312831303130313130313031 };
    scanf("%d %d"&x, &y);
    for (i = 0; i < (x - 1); i++)
        day += monthArr[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;
    }
}
cs


먼저 사용자의 월/일을 입력 받기 위한 변수 x, y와 for문을 위한 i, 요일을 계산하기 위한 day를 정수형 변수로 선언합니다.


int형 배열을 monthArr로 선언하고, 크기를 12로 둬서 각 월에 해당하는 일의 값을 넣어줍니다.


1, 3, 5, 7, 8, 10, 12월은 31일, 4, 6, 9, 11월은 30일, 2월의 경우 28일이기에 각 월에 해당하는 일을 배열의 값으로 넣어줍니다.


scanf를 이용해 월과 일에 해당하는 x와 y의 값을 각각 입력 받습니다.


for문을 사용하여 i는 0부터 i는 x-1까지 반복시키면서 day에 monthArr값을 넣어줍니다.


이 코드의 경우 day에 입력받은 월의 직전의 달까지의 일 수를 모두 더해주는 것을 의미합니다.


이 day에 y의 값을 더해주면서 입력받은 월, 일을 며칠인지를 계산할 수 있게 됩니다.


마지막으로 11라인부터 33라인은 switch문으로 day를 7로 나눈 나머지를 다시 day에 넣어 해당 값에 대해 월요일~일요일을 출력해주는 코드입니다.



코드 자체는 어려운 코드가 없지만, 입력 받은 월과 일을 어떻게 처리할지에 대한 고민을 해야하는 문제입니다.


입력으로 받는 데이터에 대해 어떻게 가공하여 사용할 것인지를 생각해보면 좋을 것 같습니다.



다음 포스팅에서는 다음 단계의 코드를 보도록 하겠습니다.


다음 포스팅에서 봐요 :))

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함