#include <stdio.h>


int main()
{
	int p[100] = { 0 };
	int n, m, a, b, c = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &p[i]);
	scanf("%d %d", &a, &b);

	// a번쨰 수부터 b번쨰 수까지의 합 저장
	for (int i = a - 1; i < b; i++) c += p[i];

	// count에 연속 부분 수열 개수를 저장
	int count = 0;

	// i: 연속 부분 수열의 시작 위치
	for (int i = 0; i < n; i++)
	{
		// ans 변수에 값을 누적하여 출력 여부를 결정한다.
		int ans = 0;

		// j: 연속 부분 수열의 끝 위치
		for (int j = i; j < n; j++)
		{
			// ans에 값을 누적한다.
			ans += p[j];

			// 연속 부분 수열 a[i..j]의 합이 n과 같음
			if (ans == c)
			{
				// 연속 부분 수열의 개수 저장
				count++;
				
				// C1에서는 양수만 계산하는데 뒤에 값들이 양수면
				// 계산을 안해도 되므로 break를 해서 for문을 나가준다.
				break;
			}
		}
	}
	// 정답 출력
	printf("%d", count);
}

'SFPC > 2021' 카테고리의 다른 글

2021 SFPC D0  (0) 2023.02.11
2021 SFPC D1  (0) 2023.02.11
2021 SFPC C2  (0) 2023.02.10
2021 SFPC C0  (0) 2023.02.10
2021 SFPC B0  (0) 2023.02.09
2021 SFPC B1  (0) 2023.02.09
#include <stdio.h>

int main()
{
	int a[24] = { 4, 2,  3,  1,  10,  3,  1,  3,  4,  5,  9,  7,  4,  1,  3,  8,  2,  5, 1, 9 };

	int n = 18;

	// count에
	int count = 0;
	// i: 연속 부분 수열의 시작 위치
	for (int i = 0; i < 20; i++)
	{
		// ans 변수에 값을 누적하여 출력 여부를 결정한다.
		int ans = 0;
		// j: 연속 부분 수열의 끝 위치
		for (int j = i; j < 20; j++)
		{
			// ans에 값을 누적한다.
			ans += a[j];
			// 연속 부분 수열 a[i..j]의 합이 n과 같음
			if (ans == n)
			{
				count++;
				// 이 for문을 나간다(j for문)
				break;
			}
		}
	}
	// 정답 출력
	printf("%d", count);
}

'SFPC > 2021' 카테고리의 다른 글

2021 SFPC D1  (0) 2023.02.11
2021 SFPC C2  (0) 2023.02.10
2021 SFPC C1  (0) 2023.02.10
2021 SFPC B0  (0) 2023.02.09
2021 SFPC B1  (0) 2023.02.09
2021 SFPC A0  (0) 2023.02.08

SFPC B1 풀이과정

#include <stdio.h>

int main()
{
	printf("6");
}

 

'SFPC > 2021' 카테고리의 다른 글

2021 SFPC C2  (0) 2023.02.10
2021 SFPC C1  (0) 2023.02.10
2021 SFPC C0  (0) 2023.02.10
2021 SFPC B1  (0) 2023.02.09
2021 SFPC A0  (0) 2023.02.08
2021 SFPC A1  (0) 2023.02.08
#include <stdio.h>

int main()
{
	int n, a, b, c;

	scanf("%d", &n);
	scanf("%d %d %d", &a, &b, &c);

	// (n / 12)는 한치 a 마리를 몇번 교환할 수 있는지를 구하는 식이므로
	// (n / 12)에 a를 곱해준다.
	int ans1 = (n / 12) * a;

	// (ans1 / 8)는 전복 b 마리를 몇번 교환할 수 있는지를 구하는 식이므로
	// (ans1 / 8)에 b를 곱해준다.
	int ans2 = (ans1 / 8) * b;

	// (ans2 / 5)는 다금바리 c 마리를 몇번 교환할 수 있는지를 구하는 식이므로
	// (ans2 / 5)에 c를 곱해준다.
	int ans3 = (ans2 / 5) * c;
	
	// 다금바리 최대 수를 출력한다.
	printf("%d", ans3);
}

'SFPC > 2021' 카테고리의 다른 글

2021 SFPC C1  (0) 2023.02.10
2021 SFPC C0  (0) 2023.02.10
2021 SFPC B0  (0) 2023.02.09
2021 SFPC A0  (0) 2023.02.08
2021 SFPC A1  (0) 2023.02.08
2021 SFPC pE0  (0) 2023.02.07

A0 풀이

#include <stdio.h>

int main()
{
    printf("A B");
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'SFPC > 2021' 카테고리의 다른 글

2021 SFPC C0  (0) 2023.02.10
2021 SFPC B0  (0) 2023.02.09
2021 SFPC B1  (0) 2023.02.09
2021 SFPC A1  (0) 2023.02.08
2021 SFPC pE0  (0) 2023.02.07
2021 SFPC pE1  (0) 2023.02.07
#include <stdio.h>

int main()
{
    // 부모의 혈액형 인자 정보 저장 배열
    char m[5], f[5];

    scanf("%s %s", &m, &f);

    // A형이 한 번만 출력되도록 하는 변수
    int countA = 0;

    // AB형이 한 번만 출력되도록 하는 변수
    int countB = 0;

    // B형이 한 번만 출력되도록 하는 변수
    int countAB = 0;

    // O형이 한 번만 출력되도록 하는 변수
    int countO = 0; 

    // A형을 채크한다.
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            // 만약 A형의 조건을 충족시킨다면
            // A를 출력하고 다음에 안 나오게 하기 위해 countA에 1 더해준다.
           if ((m[i] == 'A' && f[j] == 'O' && countA == 0) || 
               (m[i] == 'A' && f[j] == 'A' && countA == 0) ||
               (m[i] == 'O' && f[j] == 'A' && countA == 0))
           {
                printf("A ");
                countA++;
            }
        }
    }

    // AB형을 채크한다.
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            // 만약 AB형의 조건을 충족시킨다면
            // AB를 출력하고 다음에 안 나오게 하기 위해 countAB에 1 더해준다.
            if ((m[i] == 'A' && f[j] == 'B' && countAB == 0) ||
                (m[i] == 'B' && f[j] == 'A' && countAB == 0))
            {
                printf("AB ");
                countAB++;
            }
        }
    }

    // B형을 채크한다.
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            // 만약 B형의 조건을 충족시킨다면
            // B를 출력하고 다음에 안 나오게 하기 위해 countB에 1 더해준다.
            if ((m[i] == 'B' && f[j] == 'O' && countB == 0) ||
                (m[i] == 'B' && f[j] == 'B' && countB == 0) ||
                (m[i] == 'O' && f[j] == 'B' && countB == 0))
            {
                printf("B ");
                countB++;
            }
        }
    }

    // O형을 채크한다.
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            // 만약 O형의 조건을 충족시킨다면
            // O를 출력하고 다음에 안 나오게 하기 위해 countO에 1 더해준다.
            if (m[i] == 'O' && f[j] == 'O' && countO == 0)
            {
                printf("O ");
                countO++;
            }
        }
    }
}

'SFPC > 2021' 카테고리의 다른 글

2021 SFPC B0  (0) 2023.02.09
2021 SFPC B1  (0) 2023.02.09
2021 SFPC A0  (0) 2023.02.08
2021 SFPC pE0  (0) 2023.02.07
2021 SFPC pE1  (0) 2023.02.07
2021 SFPC pD1  (0) 2023.02.06

+ Recent posts