문제 풀이/백준

백준 단계별 문제풀이 10818번

춘핑이 2022. 11. 13. 18:20

4. 1차원 배열 10818번 최소, 최대 c언어

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

코드

#include <stdio.h>

int main(void)
{
    int N = 0;
    scanf_s("%d", &N);
    int a = 0;
    int min = 1000001;
    int max = -1000001;

    for (int i = 0; i < N; i++)
    {
        scanf_s("%d", &a);

        if (a > max) //입력값이 max보다 크면 max가 a값이 됨
        {
            max = a;
        }
        if (a < min) //입력값이 min보다 작으면 min가 a값이 됨
        {
            min = a;
        }

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

    return 0;

}

배열이지만 배열을 사용하지 않고 품
입력값을 계속 비교하여 최댓값보다 크면 최댓값 작으면 최소값에 넣음
범위가 -100000000~100000000이기때문에 이사이 값으로 넣음.
처음에는 if esle if를 사용하였으나 틀림. if 실행 이후 elseif 실행안하는 상황이 있어서 그런것으로 추정.
if문 두번으로 해결하였음.