https://www.acmicpc.net/problem/10818
나의 해결방법
숫자들을 저장할 배열을 동적할당 해주고
최솟값, 최댓값을 배열의 첫번째 원소로 설정해주고 for문을 돌면서 다른 원소가 min, max값보다 작거나 크면 다시 그 인덱스번째의 원소값을 min, max값으로 설정해준다.
#include<iostream>
using namespace std;
int main()
{
int cnt;
cin >> cnt;
int* a = new int[cnt];
for (int i = 0; i < cnt; i++) {
cin >> a[i];
}
int min = a[0], max = a[0];
for (int i = 1; i < cnt; i++) {
if (a[i] < min) {
min = a[i];
}
else if (a[i] > max) {
max = a[i];
}
}
cout << min << " " << max;
return 0;
}
피드백
- 배열을 사용하지 않고 입력을 받을때마다 그 전입력과 비교하여 최댓값, 최솟값을 구할 수 있다.
- 모든 정수는 -1000000보다 크거나 같고, 1000000보다 작거나 같은 정수이기 때문에
min=1000000
max=-1000000로 설정해둠- sort알고리즘으로 풀 수 있나?
#include <iostream>
using namespace std;
int main()
{
int count;
int min = 1000000;
int max = -1000000;
cin >> count;
int array[count];
for(int i = 0; i < count; i++ )
{
cin >> array[i];
if( max < array[i] ) max = array[i];
if( min > array[i] ) min = array[i];
}
cout << min << ' '<< max;
return 0;
}