[C]백준_10818 : 최소, 최대

Alal11·2023년 2월 23일
0
post-thumbnail

출처

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


문제

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


입력

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


출력

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


예제 입출력


알고리즘 분류

  • 수학
  • 구현

➡️문제 분석

n개의 정수를 입력했을 때 그중 최솟값과 최댓값을 구하는 문제이다.


➡️코드(⭕)

#include <stdio.h>

int main(void)
{
	int N, min = 1000001, max = -1000001;
	int num;

	scanf("%d", &N);

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

		min = (min < num) ? min : num;
		max = (max > num) ? max : num;
	}
	printf("%d %d", min, max);

	return 0;
}

➡️코드 분석

  1. n을 입력 받고, n번 반복문을 돌린다.

  2. num을 입력 받는데, min과 max의 초깃값을 정수 범위를 넘어서도록 1000001과 -1000001로 설정하여 num이 어떤 수가 되든 처음엔 무조건 min과 max로 대입되도록 해준다.

  3. 삼항연산자로 최솟값인 min과 최댓값인 max를 구해준다.

  4. 위 과정을 n번 반복하여 구한 min과 max 값을 출력해준다.


➡️end

오랜만에 삼항연산자를 이용하여 풀어보았다! if문으로 하는 것이 보기에 더 편할수도..ㅎㅎ

0개의 댓글