#include <stdio.h>

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

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

2022 SFPC pE0  (0) 2023.02.25
2022 SFPC pD0  (0) 2023.02.25
2022 SFPC pB1  (0) 2023.02.22
2022 SFPC pA0  (0) 2023.02.22
2022 SFPC pA1  (0) 2023.02.22
2022 SFPC E1  (0) 2023.02.21

pB1 풀

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    printf("%d", 3 * n + 1);
}

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

2022 SFPC pE0  (0) 2023.02.25
2022 SFPC pD0  (0) 2023.02.25
2022 SFPC pB0  (0) 2023.02.22
2022 SFPC pA0  (0) 2023.02.22
2022 SFPC pA1  (0) 2023.02.22
2022 SFPC E1  (0) 2023.02.21
#include <stdio.h>

// 입력: 배열 a - 길이를 구하고자 하는 문자열
// 출력: 문자열 a의 길이
int get_len(char a[100])
{
    // 널 문자가 있는 인덱스 구하기
    // (만약 a[i]쨰가 \0이란건 배열의 
    // 끝까지 왔다는 것이므로 i를 리턴한다.
    for (int i = 0; ; i++) if (a[i] == '\0') return i;
}

// 입력: 문자형 배열(문자열) x - 전체 문자열
//        정수형 변수 s - 문자열 x의 시작점
//        정수형 변수 e - 문자열 x의 끝점
//        문자형 배열(문자열) y - 부분 문자열
// 출력: 문자열 x[s...e]와 문자열 y가 같으면 1, 아니면 0 반환
int is_ok(char x[100], int s, int e, char y[100])
{
    // 배열 x의 길이(끝점 - 시작점 + 1)
    int n = e - s + 1; 

    // 배열 y의 길이
    int m = get_len(y); 

    // 만약 배열 x와 y의 길이가 같지 않다면 프로그램 끝내기
    if (n != m) return 0; 

    for (int i = s, j = 0; i <= e; i++, j++) 
        // 만약 배열 시작 부분부터 끝까지
        // 부분 문자열이 있지 않다면 프로그램 끝내기
        if (x[i] != y[j]) return 0;

    // 부분 문자열이 전체 문자열에 있다면
    // 프로그램 끝내기
    return 1;
}
int main()
{
    //s = 전체 문자열, t = 부분 문자열
    char s[100], t[100]; 
    // n = s 배열의 길이, m = t 배열의 길이
    int n, m; 

    scanf("%s", s);
    scanf("%s", t);

    // 배열 s와 t의 길이를 변수 n, m에 저장한다.
    n = get_len(s);
    m = get_len(t);

    // i는 시작점
    for (int i = 0; i < n; i++) 
    {
        //j는 끝점
        for (int j = i; j < n; j++)
        {
            // 만약 is_ok 함수에서
            // 부분 문자열이 전체 문자열에 표함되있다는 결과가 나왔다면.
            if (is_ok(s, i, j, t) == 1) 
            {
                // O를 출력한 후 프로그램을 끝낸다.
                printf("O");
                return 0;
            }
        }
    }
    // 확인을 했는데도 프로그램이 끝나지 않았다면 
    // 검색이 안되는 경우이므로 X를 출력한다.
    printf("X");
}

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

2022 SFPC pB0  (0) 2023.02.22
2022 SFPC pB1  (0) 2023.02.22
2022 SFPC pA0  (0) 2023.02.22
2022 SFPC E1  (0) 2023.02.21
2022 SFPC E0  (0) 2023.02.21
2022 SFPC D1  (0) 2023.02.19
#include <stdio.h>

int main()
{
    // n = 
    int n, k[100004];

    //mn = 전체 구간중 배터리의 최솟값
    // a = 현재 배터리량
    int a = 0, mn = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", &k[i]);

    for (int i = 1; i < n; i++)
    {
        // 고도가 낮아지는 경우
        if (k[i - 1] > k[i]) a += (k[i - 1] - k[i]) / 2;

        // 고도가 높아지는 경우
        else a += (k[i - 1] - k[i]) * 2;

        // 현재 배터리량이 0보다 작고 mn보다 작을 경우 정답 갱신
        if (a < 0 && a < mn) mn = a;
    }
    // -를 넣어 양수로 바꿔준다.
    printf("%d", -mn);
}

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

2022 SFPC pB1  (0) 2023.02.22
2022 SFPC pA0  (0) 2023.02.22
2022 SFPC pA1  (0) 2023.02.22
2022 SFPC E0  (0) 2023.02.21
2022 SFPC D1  (0) 2023.02.19
2022 SFPC D0  (0) 2023.02.18

#include <stdio.h>

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

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

2022 SFPC pA0  (0) 2023.02.22
2022 SFPC pA1  (0) 2023.02.22
2022 SFPC E1  (0) 2023.02.21
2022 SFPC D1  (0) 2023.02.19
2022 SFPC D0  (0) 2023.02.18
2022 SFPC C0  (0) 2023.02.17
#include <stdio.h>

int main()
{
    // a = 다리 위에 있는 학생 수
    // k = 대기중인 학생 수
    // w = 최대 인원
    // b = 다리 구간의 수
    // n = 다리를 건너야 하는 학급 수
    // k = 각 학급별 인원
    int a[104] = { 0 }, w, b, n, k[104];

    scanf("%d %d", &w, &b);
    scanf("%d", &n);

    //1반부터 N반까지 학생 수 입력
    for (int i = 1; i <= n; i++) scanf("%d", &k[i]);

    // 시간 저장
    int t = 0;

    // 첫번째로 대기중인 학급
    int j = 1;

    // 종료 조건 체크
    while (1)
    {

        // 다리 위에 있는 학생 수
        int asum = 0;

        // 현재 다리에 학생이 얼마나 있는지 합계
        for (int i = 1; i <= b; i++)
            asum += a[i];

        // 다리 위에도 학생이 없고, 대기 중인 학급도 없다면 나가기
        if (asum == 0 && j > n)
            break;

        //1분이 흐름.
        t++;

        //다리의 첫 번째 위치에 있는 학생들은 이동이 끝남.
        asum -= a[1];

        // 한 칸씩 왼쪽으로 이동한다.(다리 한 칸 이동)
        for (int i = 2; i <= b; i++) a[i - 1] = a[i];
        // a[b]는 비어있을 것이므로 0으로 채워준다.
        a[b] = 0;

        //만약 대기하는 학급이 있으면 다리 위에 학생이 올라갈 수 있는지 확인
        if (j <= n)
        {
            // x에 다리에 올라올지 정하는 학급을 넣어놓는다.
            int x = k[j];

            // 다리 위에 올라갈 수 있는 경우
            if ((asum + x) <= w) {
                a[b] = x;

                //다음 학급으로 전환.
                j++;
            }
        }
    }
    //시간 출력.
    printf("%d", t);
}

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

2022 SFPC pA1  (0) 2023.02.22
2022 SFPC E1  (0) 2023.02.21
2022 SFPC E0  (0) 2023.02.21
2022 SFPC D0  (0) 2023.02.18
2022 SFPC C0  (0) 2023.02.17
2022 SFPC B0  (0) 2023.02.17

+ Recent posts