상세 컨텐츠

본문 제목

[백준] 10818번 최소, 최대 (c++)

프로그래밍/백준 c++

by montgras 2021. 7. 4. 23:21

본문

반응형

[문제] https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

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

www.acmicpc.net

 

 


[풀이]

1. n을 입력받는다.

2. n개만큼 입력을 받으면서, //for문 사용

3. min, max를 각각 찾아준다.

4. min과 max를 사이에 공백을 두고 출력한다.


 

for문과 while문 모두 반복문이지만,

- 보통 반복하는 횟수가 정해져 있을 때, for문을 사용하고

- 필요하다면 무한하게(반복수를 모를 때) 반복해야 할 때, while문을 사용하는 것이 좋다.

 

따라서 n이라는 명확한 반복수를 입력받는 이 문제의 경우, 

for문을 사용하는 것이 바람직하다고 판단했다.

 

max와 min은 각각 정수의 한계로 지정해준 숫자를 반대로 넣었다.

 

#include <iostream>

using namespace std;

int main() {
	int n, num;
	int max = -1000000, min = 1000000;

	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> num;
		if (num > max) max = num;
		if (num < min) min = num;
	}

	cout << min << " " << max << endl;

	return 0;
}

 

또한 다른 풀이들을 검색하면 알 수 있겠지만, 입력을 배열을 선언해 입력되는 모든 숫자를 저장하는 방법도 있다.

다만, 최댓값과 최솟값은 sorting과 같이 굳이 모든 숫자를 다시 훑지 않아도 찾을 수 있기 때문에 배열을 모두 저장하는 과정은 생략했다.

 

 

 

반응형

관련글 더보기

댓글 영역