백준 10818번

CharliePark·2020년 9월 20일
0

TIL

목록 보기
42/67

BOJ 10818 : 최소, 최대

문제 자체는 간단해서 별 할 말이 없고

함수 포인터를 이용해 구현하였다.


#include <stdio.h>
#include <stdlib.h>

typedef int(*FP)(int, int);

int comparison(int* arr, FP, int);

int bigger(int, int);
int smaller(int, int);

int main()
{
    int N;
    scanf("%d", &N);

    int* arr = (int*)malloc(sizeof(int) * N);

    for (int i = 0; i < N; i++)
        scanf("%d", &arr[i]);

    int min = comparison(arr, smaller, N);
    int max = comparison(arr, bigger, N);

    printf("%d %d", min, max);
}


int comparison(int* arr, FP fp, int n)
{
    int result = arr[0];

    for (int i = 1; i < n; i++)
    {
        result = fp(arr[i], result);
    }

    return result;
}

int bigger(int A, int B)
{
    if (A > B)
        return A;
    else
        return B;
}

int smaller(int A, int B)
{
    if (A < B)
        return A;
    else
        return B;
}

0개의 댓글