[백준 10818] 최소 최대

Minju Kwak·2022년 6월 18일
0

BOJ

목록 보기
3/22
post-thumbnail

문제

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;
}
profile
그냥 나만의 노트

0개의 댓글