반응형
https://www.acmicpc.net/problem/10818
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
접근 방법
- N이 주어진다 (주어지는 수의 개수) N크기의 배열을 만든다 -> 동적으로 설정
- arr를 순회하며, 더 작은수를 찾을 때 마다 min 업데이트
- arr를 순회하며, 더 큰 수를 찾을 때 마다 max 업데이트
정답 코드
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int* arr = new int[N];
for (int i = 0; i < N ; i++){
cin >> arr[i];
}
int min = arr[0];
int max = arr[0];
for (int i = 0; i < N ; i++){
if(arr[i] < min){
min = arr[i];
}else if(arr[i] > max){
max = arr[i];
}
}
cout << min << " "<<max <<endl;
return 0;
}
채점 결과
느낀점
앞서 비슷한 문제를 연속적으로 풀다 보니 풀이 시간은 굉장히 짧아졌다
그러나 메모리와 시간이 다른 문제보다 크게 나온 점이 마음에 걸린다
더 빠르게 푸는 솔루션이 있나 찾아볼 것!
반응형
'코딩테스트 | 백준' 카테고리의 다른 글
[백준 5597 | C++] 과제 안 내신 분..?_ 1차원 배열 (배열 비교, 배열에서 없는 수 찾기, array, for) (0) | 2025.01.11 |
---|---|
[백준 10813 | C++] 공 바꾸기_ 1차원배열(array, for) (0) | 2025.01.10 |
[백준 10871 | C++] X보다 작은 수_ 배열 순회(array loop, for, vector) (0) | 2025.01.01 |
[백준 10807 | C++] 개수 세기_ 배열 순회(array loop, for) (0) | 2024.12.30 |
[백준 11866 | C++] 요세푸스 문제 0_ 큐(queue) (1) | 2024.11.22 |