1. 문제 상세
https://www.acmicpc.net/problem/10818
2. 문제 접근
N개의 정수가 주어지고, 주어진 정수들 중에 최솟값과 최댓값을 찾아보자.
먼저, 정수의 개수를 입력받는다. 정수의 개수는 최소 1개에서 최대 1000000개 이하 이기때문에
정수들을 저장할 배열의 크기를 1000000으로 설정.
반복문으로 입력받은 정수의 개수만큼 반복하며 정수를 입력받아 배열에 저장한다.
반복문으로 입력받은 정수의 개수만큼 반복하며 최솟값과 배열의 값들을 비교하여 작은 값을 최솟값에 저장해간다.
똑같이 최댓값도 비교하며 큰 값을 최댓값 변수에 저장해간다.
마지막으로 최솟값과 최댓값을 출력.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int n, a[1000000], min = 1000000, max = -1000000;
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
for(int i = 0; i < n; i++) {
if(min > a[i]) min = a[i];
if(max < a[i]) max = a[i];
}
cout << min << " " << max;
}
정수형 변수 n, min, max 를 선언, min 은 1000000, max 는 -1000000 으로 초기화한다.
크기가 1000000인 정수형 배열 a 를 선언.
cin 으로 입력 할 정수의 개수를 입력받아 n 에 저장한다.
for문을 사용하여 i 가 0 부터 n 보다 작을 때 1 씩 더하며 반복하도록 한다.
반복에서는 cin 으로 정수를 입력받아 a 배열의 i 번 인덱스에 저장한다.
다시 for문을 사용, i 가 0 부터 n 보다 작을 때 1 씩 더하며 반복하도록 하고
반복에서 조건문을 사용해 배열 a 의 i 번 인덱스의 값이 min 보다 작다면 min 에 a 의 i 번 인덱스의 값을 저장한다.
다시 조건문을 사용해 배열 a 의 i 번 인덱스의 값이 max 보다 크다면 max 에 a 의 i 번 인덱스의 값을 저장한다.
모든 비교가 끝나면 cout 으로 min 과 max 의 값을 출력한다.
4. 성능 확인
5. 마무리
1차원 배열을 활용하여 정수 배열의 최소,최대값을 구해보았다.
'백준 - 단계별로 풀어보기 > 1차원 배열' 카테고리의 다른 글
[백준] 10813번 : 공 바꾸기 | C++ (0) | 2023.09.21 |
---|---|
[백준] 10810번 : 공 넣기 | C++ (0) | 2023.09.21 |
[백준] 2562번 : 최댓값 | C++ (0) | 2023.09.21 |
[백준] 10871번 : X보다 작은 수 | C++ (0) | 2023.09.21 |
[백준] 10807번 : 개수 세기 | C++ (0) | 2023.09.21 |