SFPC pD0 풀이과정

#include <stdio.h>;

int main() {
	printf("2 1 3 4 5");
}

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

2021 SFPC pE0  (0) 2023.02.07
2021 SFPC pE1  (0) 2023.02.07
2021 SFPC pD1  (0) 2023.02.06
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
// ver.2 빠른 버전
#include <stdio.h>
int v[1000004];

// 입력: x : 약수를 구할 정수
// 출력 : count : x의 약수의 개수
int factor_fast(int x)
{
    // count = 약수의 개수
    int count = 0;

    // i를 1부터 root(x)까지 돌린다.
    for (int i = 1; i * i<= x; i++)
    {
        // x 나누기 i를 헀는데 나머지가 0이면 약수이므로
        // count에 2을 더해준다.(약수 : i랑 x / i)
        if (x % i == 0) count += 2;

        // 만약 위에서 2를 더해줬는데 두 개를 곱헀더니 x가 나왔다는건
        // 두 숫자가 같다는 것이므로 하나 뺴 준다.
        if (i * i == x) count--;
    }
    // 약수의 개수를 매인 함수로 전달.
    return count;
}

int main()
{
    int m, n;

    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
        scanf("%d", &v[i]);

    for (int i = 0; i < n; i++)
    {
        // factor 함수에서 나온 약수의 개수와 m 나누기 v[i]를 한 배수 값을 더한 후 -1 해준다.
        printf("%d\n", (factor_fast(v[i]) + m / v[i]) - 1);
    }
}

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

2021 SFPC pE1  (0) 2023.02.07
2021 SFPC pD1  (0) 2023.02.06
2021 SFPC pD0  (2) 2023.02.06
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

pC0 풀이과정

#include <stdio.h>

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

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

2021 SFPC pD1  (0) 2023.02.06
2021 SFPC pD0  (2) 2023.02.06
2021 SFPC pC1 ver.2  (0) 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
// ver.1 느린 버전
#include <stdio.h>
int v[1000004];

// 입력: x : 약수를 구할 정수
// 출력 : count : x의 약수의 개수
int factor(int x)
{
    // count = 약수의 개수
    int count = 0;
    
    // i를 1부터 x까지 돌려 x의 약수를 모두 구해준다.
    for (int i = 1; i <= x; i++)
    {
        // x 나누기 i를 헀는데 나머지가 0이면 약수이므로
        // count에 1을 더해준다.
        if (x % i == 0) count++;
    }
    // 약수의 개수를 매인 함수로 전달.
    return count;
}

int main()
{
    int m, n;

    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
        scanf("%d", &v[i]);

    for (int i = 0; i < n; i++)
    {
        // factor 함수에서 나온 약수의 개수와 m 나누기 v[i]를 한 배수 값을 더한 후 -1 해준다.
        printf("%d\n", (factor(v[i]) + m / v[i]) - 1);
    }
}

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

2021 SFPC pD0  (2) 2023.02.06
2021 SFPC pC1 ver.2  (0) 2023.02.05
2021 SFPC pC0  (6) 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
// 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

+ Recent posts