본문 바로가기

C언어

C언어 6주차

#include <stdio.h>

#define SIZE 100

int main() {
    int N, M;
    int paper[SIZE + 1][SIZE + 1] = {0}; 
    
    scanf("%d %d", &N, &M);
    
    for (int i = 0; i < N; i++) {
        int x1, y1, x2, y2;
        scanf("%d %d %d %d", &x1, &y1, &x2, &y2);

        for (int x = x1; x <= x2; x++) {
            for (int y = y1; y <= y2; y++) {
                paper[x][y]++;
            }
        }
    }

    int count = 0;

    for (int x = 1; x <= SIZE; x++) {
        for (int y = 1; y <= SIZE; y++) {
            if (paper[x][y] > M) {
                count++;
            }
        }
    }

    printf("%d\n", count);

    return 0;
}

1.첫번째로 for문을 돌리면서 각각 종이에 얼마나 가려져 있는지 세어봅니다.

1-2. 세로 한 줄을 입력 받을 때 마다 얼마나 가려져있는지 2중으로 세는 방식입니다.

1-3.이 떄 paper에 저장되는 값은 가려진 부분입니다. 

 

2. 이번에는 가려지지 않은 부분을 셉니다. 

2-1.만약 paper에 저장된 값이 1보다 클 경우에, count(가려지지 않은 부분을 증가시킵니다.

3.출력합니다

 

#include <stdio.h>

int main() {
    int first;
    scanf("%d", &first);

    int max_length = 0;
    int array[30000];  

    for (int second = 1; second <= first; second++) {
        int temp_array[30000];
        int length = 2;
      
        temp_array[0] = first;
        temp_array[1] = second;

        while (temp_array[length - 2] - temp_array[length - 1] >= 0) {
            temp_array[length] = temp_array[length - 2] - temp_array[length - 1];
            length++;
        }

        if (length > max_length) {
            max_length = length;
            for (int i = 0; i < length; i++) {
                array[i] = temp_array[i];
            }
        }
    }

    printf("%d\n", max_length);
    for (int i = 0; i < max_length; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");

    return 0;
}

1. for(int second = 1; second <= first; second++)부분에서 두번째 수를 1로 가정하고 실행해봅니다.

2.1번 과정을 한 번 거쳤으니 temp_array[0] = first; temp_array[1] = second;이 부분으로 다시 초기화 해줍니다.

3.while문에서 규칙에 따라 수열을 생성해주기 시작합니다.

3-1.이때 최대 길이가 길어지면 if에 저장을 해서 최대 길이를 갱신해줍니다. 

4.만약 음수가 나올 경우 while문을 빠져나옵니다.

5.결과를 출력합니다.

 

'C언어' 카테고리의 다른 글

C언어 9주차  (0) 2024.11.24
5주차 C언어  (2) 2024.10.09
4주차 C언어  (1) 2024.10.05
3주차 C언어  (0) 2024.09.29
6주차 C언어 추가 과제  (0) 2024.08.07