// ver.1 가장 비효율적 코드(for문)
#include <stdio.h>

int main()
{
	// n = 한라봉 무게, ans = 박스의 개수 저장
	int n, ans = -1; 

	scanf("%d", &n);

	// t = 한라봉의 무게를 저장시켜놓은 변수인데 이 변수를 기준으로 아래 for 문이 돌아간다.
	int t = n; 

	// i = 10kg짜리 박스를 사용하는 개수를 저장한다.
	for (int i = 0; i <= t; i++) 
	{
		// 만약 10kg 박스만으로 한라봉을 포장할 수 없다면 for문 나가기
		if (i * 10 > t) break;

		// j = 5kg짜리 박스를 사용하는 개수를 저장한다.
		for (int j = 0; j <= t; j++) 
		{
			// 만약 10kg 박스와 5kg 박스만으로 한라봉을 포장할 수 없다면 for문 나가기
			if (i * 10 + j * 5 > t) break;

			// k = 3kg짜리 박스를 사용하는 개수를 저장한다.
			for (int k = 0; k <= t; k++)
			{
				// 만약 10kg, 5kg, 3kg 박스만으로 한라봉을 포장할 수 없다면 for문 나가기.
				int a = i * 10 + j * 5 + k * 3;
				if (a > t) break;

				// b = 남은 한라봉 무게를 저장.
				int b = t - a;
				int l = b;

				// 만약 ans에 한 번도 값이 들어간 적이 없거나 ans이 모든 상자 사용값보다 크다면 ans 바꾸기
				if (ans == -1 || (ans > i + j + k + l))
					ans = i + j + k + l;
			}
		}
	}

	// 박스의 개수 출력
	printf("%d", ans);
}

 

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

2021 SFPC pC1 ver.2  (0) 2023.02.05
2021 SFPC pC0  (6) 2023.02.05
2021 SFPC pC1 ver.1  (0) 2023.02.05
2021 SFPC pA0  (0) 2023.02.04
2021 SFPC pB0  (0) 2023.02.04
2021 SFPC pB1 ver.3  (0) 2023.02.04

 

pA0 풀이과정

#include <stdio.h>

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

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

2021 SFPC pC0  (6) 2023.02.05
2021 SFPC pC1 ver.1  (0) 2023.02.05
2021 SFPC pB1 ver.1  (0) 2023.02.04
2021 SFPC pB0  (0) 2023.02.04
2021 SFPC pB1 ver.3  (0) 2023.02.04
2021 SFPC pA1  (0) 2023.02.03
// ver.3 가장 효율적인 코드(배열)
#include <stdio.h>

int x[4] = { 10, 5, 3, 1 }; // 배열 x에 모든 박스의 크기를 저장

int main()
{
	int n; // n = 한라봉 무게
	int ans = 0; // ans = 상자의 개수 저장

	scanf("%d", &n);

	// t라는 변수는 한라봉의 무게를 저장시켜놓은 변수인데 이 변수를 기준으로 아래 for 문이 돌아간다.
	int t = n; 
	for (int i = 0; i < 4; i++)
	{
		// 만약 박스의 크기(x[i])가 한라봉의 무게를 뛰어넘는다면 다음 for 문으로 넘어가기
		if (x[i] > t) 
			// 다음 for 문으로 넘어가기
			continue; 
		
		// ans에 한라봉의 무게(t) / 박스의 무게(x[i])를 더해 박스를 얼마나 써야 할지 구해준다.
		ans += t / x[i];

		// t에 사용된 i번째 상자의 개수만큼 빼준다.
		t -= (t / x[i]) * x[i]; 
	}

	// 상자의 개수 출력
	printf("%d", ans);
}

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

2021 SFPC pC0  (6) 2023.02.05
2021 SFPC pC1 ver.1  (0) 2023.02.05
2021 SFPC pB1 ver.1  (0) 2023.02.04
2021 SFPC pA0  (0) 2023.02.04
2021 SFPC pB0  (0) 2023.02.04
2021 SFPC pA1  (0) 2023.02.03
#include <stdio.h>

int main()
{
	int n; // n = 염기의 개수
	char ans[100000]; // DNA의 염기서열

	scanf("%d", &n);
	scanf("%s", ans);

	for (int i = 0; i < n; i++) // i를 0부터 n - 1까지 돌려 배열에 있는 모든 값을 비교해본다.
	{
		if (ans[i] == 'A') printf("U"); // 만약 ans[i]가 A(아데닌)이라면 U(우라실)을 출력한다.
		else if (ans[i] == 'T') printf("A"); // 만약 ans[i]가 T(티민)이라면 A(아데닌)을 출력한다.
		else if (ans[i] == 'C') printf("G"); // 만약 ans[i]가 C(사이토신)이라면 G(구아닌)을 출력한다.
		else printf("C"); // 위에 있는 모든 사항이 맞지 않다면 G(구아닌)이라는 뜻이므로 C(사니토신)을 출력한다.
	}
}

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

2022 SFPC B0  (0) 2023.02.17
2022 SFPC A0  (0) 2023.02.17
2022 SFPC B1  (0) 2023.02.16
2022 SFPC pE1 ver.2  (0) 2023.02.02
2022 SFPC pE1 ver.1  (0) 2023.02.02
2022 SFPC pD1 ver.2  (0) 2023.02.01
#include <stdio.h>


int main()
{
    // n은 주차 공간의 수, a는 첫번째 날에 주차된 차량의 수, b는 두번째 날에 주차된 차량의 수
    int n, a, b; 
    
    // A 배열은 첫째 날 사용된 주차 공간의 번호들을 저장해놓은 배열
    // B 배열은 둘째 날 사용된 주차 공간의 번호들을 저장해놓은 배열
    int A[100], B[100];

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

    /// A, B 배열에 1부터 a, b까지 주차 공간의 번호 저장
    for (int i = 1; i <= a; i++)
        scanf("%d", &A[i]);
    for (int i = 1; i <= b; i++)
        scanf("%d", &B[i]);

    // count1에 모두 사용된 주차 공간을 저장
    int count1 = 0;
    for (int k = 1; k <= n; k++) // 1부터 n까지 돌려 두 배열에 같은 주차 번호가 있는지 확인하는 for문
    {
        // k_count를 이용해 count1를 좌우
        int k_count = 0;
        // 1부터 a까지 돌려 배열 A에 k가 있는지 확인하고
        // 있으면 k_count에 1을 추가
        for (int i = 1; i <= a; i++) 
            if (A[i] == k) k_count++;

        // 1부터 b까지 돌려 배열 B에 k가 있는지 확인하고
        // 있으면 k_count에 1을 추가
        for (int j = 1; j <= b; j++)
            if (B[j] == k) k_count++;

        // k_count가 2라는 것은 두 배열에 같은 주차 번호가 있다는 것이므로 count1에 1을 추가
        if (k_count == 2) count1++; 
    }
    
    // count2에 모두 사용되지 않은 주차 공간을 저장
    int count2 = 0;

    // 1부터 n까지 돌려 두 배열에 같은 주차 번호가 없는지 확인하는 for문
    for (int k = 1; k <= n; k++) 
    {
        // k_count를 이용해 count2를 좌우
        int k_count = 0;

        // 1부터 a까지 돌려 배열 A에 k가 있는지 확인하고
        // 있으면 k_count에 1을 추가
        for (int i = 1; i <= a; i++)
            if (A[i] == k) k_count++;

        // 1부터 b까지 돌려 배열 B에 k가 있는지 확인하고
        // 있으면 k_count에 1을 추가
        for (int j = 1; j <= b; j++)
            if (B[j] == k) k_count++;

        // k_count가 0이라는건 두 배열에 공통적으로 없는 주차 번호가 있다는 뜻이므로
        // count2에 1을 더해준다.
        if (k_count == 0) count2++;
    }
    // 순서대로 출력
    printf("%d %d", count2, count1);
}

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

2021 SFPC pC0  (6) 2023.02.05
2021 SFPC pC1 ver.1  (0) 2023.02.05
2021 SFPC pB1 ver.1  (0) 2023.02.04
2021 SFPC pA0  (0) 2023.02.04
2021 SFPC pB0  (0) 2023.02.04
2021 SFPC pB1 ver.3  (0) 2023.02.04
// ver.1 for문 X
#include <stdio.h>

int main()
{
    int n, m; // n = 처음 가지고 있는 코인, m = 사용된 코인
    int ans[5] = { 0 }; // 500코인부터 10코인까지 순서대로 특산물 개수를 저장할 배열
    scanf("%d", &n);
    scanf("%d", &m);

    int t = n - m; // t = 보유 코인 수

    // ans[1]은 영덕 대게(500코인)를 교환할 수 있는 개수를 저장하는 곳이니
    // t / 500은 전체 코인수에 500을 나눠서 나온 몫이 개수이므로
    // ans[1]에 t / 500을 저장한다.
    ans[1] = t / 500; 
    
    // 영덕 대게를 샀으니 산만큼 보유 코인을 깎아준다.
    t -= 500 * ans[1];

    // ans[2]은 김천 포도(100코인)를 교환할 수 있는 개수를 저장하는 곳이니
    // t / 100은 전체 코인수에 100을 나눠서 나온 몫이 개수이므로
    // ans[2]에 t / 100을 저장한다.
    ans[2] = t / 100;
    
    // 김천 포도를 샀으니 산만큼 보유 코인을 깎아준다.
    t -= 100 * ans[2];

    // ans[3]은 의성 마늘(50코인)를 교환할 수 있는 개수를 저장하는 곳이니
    // t / 50은 전체 코인수에 50을 나눠서 나온 몫이 개수이므로
    // ans[3]에 t / 50을 저장한다.
    ans[3] = t / 50;

    // 의성 마늘을 샀으니 산만큼 보유 코인을 깎아준다.
    t -= 50 * ans[3];

    // ans[4]은 상주 곶감(10코인)를 교환할 수 있는 개수를 저장하는 곳이니
    // t / 10은 전체 코인수에 10을 나눠서 나온 몫이 개수이므로
    // ans[4]에 t / 10을 저장한다.
    ans[4] = t / 10;

    // 상주 곶감을 샀으니 산만큼 보유 코인을 깎아준다.
    t -= 10 * ans[4];

    // 변수 number에 순서대로 구한 값을 저장해준 후 출력한다.
    int number = 0;
    for (int i = 1; i <= 4; i++) number += ans[i];
    printf("%d", number);
}

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

2022 SFPC B1  (0) 2023.02.16
2022 SFPC A1  (0) 2023.02.03
2022 SFPC pE1 ver.2  (0) 2023.02.02
2022 SFPC pD1 ver.2  (0) 2023.02.01
2022 SFPC pD1 ver. 1  (0) 2023.02.01
2022 SFPC pC1,2  (1) 2023.01.31

+ Recent posts