[백준] 10818번 최소, 최대 C++ 문제 풀이 1차원배열
2019. 7. 25. 08:43ㆍ알고리즘/백준
728x90
반응형
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
예제 입력 1
5
20 10 35 30 7
예제 출력 1
7 35
문제 풀이
#include <iostream>
using namespace std;
int main(void){
int num, count,min = 1000001, max = -1000001;
cin>>count;
while(cin>>num){
max = num > max ? num : max;
min = num < min ? num : min;
}
cout << min << " " << max;
}
아무 생각 없이 정렬 알고리즘 돌리다가 시간 초과로 계속 실패했습니다.
이런 문제 역시 입력을 한 번에 받아서 최소값, 최대값을 찾는 게 아니라서 입력을 받는 즉시
비교해서 최소값 또는 최대값을 구할 수 있습니다.
최소값 min과 최대값 max변수를 선언할 때 min은 입력받을 수 있는 최대값, max는 입력 받을 수 있는 최소값으로 초기화시켜줍니다.
왜냐하면 어떠한 수랑 비교를 하던 맨 처음에 비교하는 수를 대입시키기 위함입니다. 그래야 순수하게 입력받은 값으로만 비교가 가능합니다.
입력이 다 끝나면 최소값과 최대값을 양식에 맞춰 출력하면 됩니다. 배열은 쓰지 않았네요..
출처 : https://www.acmicpc.net/problem/10818
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2920번 음계 C/C++ 문제 풀이 1차원배열 (2) | 2019.07.29 |
---|---|
[백준] 2562번 최댓값 C++ 문제 풀이 1차원배열 (0) | 2019.07.26 |
[백준] 1110번 더하기 사이클 C / C++ 문제 풀이 while문 (0) | 2019.07.24 |
[백준] 10951번 A+B - 4 C++ 문제 풀이 while문 (0) | 2019.07.19 |
[백준] 10952번 A+B - 5 C++ 문제 풀이 while문 (0) | 2019.07.16 |