-- 예전 기록/BOJ

[ BOJ ] 20053 : 최소, 최대 2 ( BRONZE 3 ) / C, Python

rejo 2023. 10. 7. 09:44

문제

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

입력

첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다.

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

출력

각 테스트 케이스마다 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 한 줄에 하나씩 차례대로 출력한다.

풀이 과정

최소, 최대 문제 https://readytojoin.tistory.com/154 에서 테스트 케이스가 추가된 문제이다.

반복문을 이용해 들어오는 수열의 최솟값과 최댓값을 계속해서 구할 수 있도록 한다.

C

#include <stdio.h>

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

    for (int i = 0; i < t; i++) {
        int n;
        scanf("%d", &n);

        int min_value = 1000001;
        int max_value = -1000001;
        int tmp;
        for (int j = 0; j < n; j++) {
            scanf("%d", &tmp);
            if (min_value > tmp) min_value = tmp;
            if (max_value < tmp) max_value = tmp;
        }

        printf("%d %d\n", min_value, max_value);
    }
    return 0;
}

Python

t=int(input())
for _ in range(t):
    n = int(input())
    arr = list(map(int, input().rstrip().split()))
    print(min(arr), max(arr))