문제 : 최소, 최대(10818번)(Bronze III)
문제 링크 : https://www.acmicpc.net/problem/10818
출처 : Baekjoon Online Judge
이 문제는 배열의 크기와 배열이 주어졌을 때 그 배열의 최대값과 최소값을 구하는 문제입니다.
우선 C++로 구현하면서 설명 들어갑니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int max_value = -1000000;
int min_value = 1000000;
while(n--) {
int a;
cin >> a;
if(a > max_value) max_value = a;
if(a < min_value) min_value = a;
}
cout << min_value << " " << max_value;
return 0;
}
잘 보시면 알겠지만 저는 여기서 배열을 전혀 사용하지 않았습니다.
왜냐면 이 문제는 단순하게 최소값과 최대값만 구하면 되기 때문에 배열 선언하지 않고 입력이 하나씩 주어질 때마다 즉시 비교하여 최소값과 최대값을 갱신합니다.
이 때 초기 최대값은 a의 최소값(-1000000), 초기 최소값은 a의 최대값(1000000)으로 설정해서 반드시 최소값, 최대값을 구할 수 있도록 설정합니다.
이렇게 하면 배열 선언을 하지 않아서 메모리 절약이 가능하면서 거의 똑같은 경과 시간을 얻게 되어 메모리 부분에서 효율성을 가집니다.
참고로 Python에서는 max(), min()으로 금방 구할 수 있습니다.
import sys
input = sys.stdin.readline
N:int = int(input().rstrip())
L:list = list(map(int, input().split()))
print(min(L), max(L))'(구) solved ac class 문제들 > class 1' 카테고리의 다른 글
| [class 1]백준 숫자의 개수(2577번) 풀이 (C++/Python) (1) | 2026.04.22 |
|---|---|
| [class 1]백준 단어의 개수(1152번) 풀이 (C++/Python) (0) | 2026.04.21 |
| [class 1]백준 ACM 호텔(10250번) 풀이 (C++/Python) (0) | 2026.04.19 |
| [class 1]백준 알람 시계(2884번) 풀이 (C++/Python) (0) | 2026.04.18 |
| [class 1]백준 최댓값(2562번) 풀이 (C++/Python) (0) | 2026.04.17 |