ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SISS/C언어 스터디] 여름 7주차 스터디
    24-여름 SISS/C언어 2024. 8. 17. 20:00

    여름 7주차 스터디
    백준 제출 내역 화면 캡쳐

    자율 2문제를 풀어서 제출하면 됩니다.

    언어는 C언어만 가능합니다.

    레벨 제한사항: Bronze 3 이상

     

    11659


    • 누적 합 → 각각의 인덱스까지의 합을 구하여 저장한 후, 구간 별 합은 시작 인덱스-1 까지의 합을 빼 구함
    // 11659.c
    
    #include <stdio.h>
    
    int main()
    {
        // 문제의 입력 범위를 참고하여 배열 크기 설정
        int n, m;
        int arr[100001];
        int sum[100001] = {
            0,
        };
    
        // 수의 개수(n)와 구해야할 합의 개수(m)
        scanf("%d %d", &n, &m);
    
        // 수열을 입력받으며 각각의 인덱스까지의 누적합을 저장
        for (int i = 1; i <= n; i++)
        {
            scanf("%d", &arr[i]);
            sum[i] = sum[i - 1] + arr[i];
        }
    
        // 구해야하는 구간 별 합을 차를 이용하여 계산
        for (int i = 0; i < m; i++)
        {
            int a, b;
            scanf("%d %d", &a, &b);
            printf("%d\n", sum[b] - sum[a - 1]);
        }
    
        return 0;
    }

     


    1065


    • 브루트포스 → 입력 수의 범위가 1000 미만이므로 일의 자리와 십의 자리, 십의 자리와 백의 자리 수의 차를 구하여 같은지 여부를 통해 등차수열임을 확인할 수 있음
    // 1065.c
    
    #include <stdio.h>
    
    int main()
    {
        int n;
        int cnt = 0;
    
        // 최대 범위 입력
        scanf("%d", &n);
    
        for (int i = 1; i <= n; i++)
        {
            // 100보다 작은 경우는 모두 등차수열
            if (i < 100)
            {
                cnt++;
            }
            // 1000보다 작은 수이므로 일의 자리와 십의자리, 십의 자리와 백의 자리 수의 차가 같으면 등차수열
            else
            {
                int a = i / 100;
                int b = (i % 100) / 10;
                int c = i % 10;
    
                if (a - b == b - c)
                {
                    cnt++;
                }
            }
        }
    
        printf("%d", cnt);
    
        return 0;
    }
Designed by Tistory.