백준 C, C++ 문제

10818번, 최소, 최대

swchung09 2025. 4. 7. 22:57

https://www.acmicpc.net/problem/10818

이 문제는 N개의 정수가 주어질 떄, 최솟값과 최댓값을 구하는 문제이다.

우선 기본 입출력 라이브러리를 불러온다.

#include <stdio.h>

그 다음 정수 배열과 N, min, max를 생성한다.

int arr[1000000];
int n, min = 1000000, max = -1000000;

그 다음 scanf로 n을 입력 받고

scanf("%d", &n);

for 문으로 배열을 입력받는다.

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

그 다음 for문으로 배열 내 min과 max를 구한다.

for (int i = 0; i < n; i++){
	min = (min < arr[i])? min : arr[i];
    max = (max > arr[i])? max : arr[i];
}

최종 코드(참고 - for문을 두 번 쓰는 것은 최소한 이 문제에서는 효율적이지 않다. 따라서 나는 하나의 for문으로만 풀었다.)

#include <stdio.h>
int main(){
    int arr[1000000];
    int n, min = 1000001, max = -1000001;
    scanf("%d", &n);
    for (int i = 0; i < n; i++){
        scanf("%d", &arr[i]);
        min = (min < arr[i])? min : arr[i];
        max = (max > arr[i])? max : arr[i];
    }
    printf("%d %d", min, max);
}

 

'백준 C, C++ 문제' 카테고리의 다른 글

10871번, X보다 작은 수  (0) 2025.04.08
10807번, 개수 세기  (0) 2025.04.08
1008번, A/B  (0) 2025.04.02
10998번, AxB  (0) 2025.04.02
1001번, A-B  (0) 2025.04.02