개발자/C or C++
[백준] 10818번
728x90
반응형
이 문제는 배열안에 값을 저장하여 배열 안에서 최솟값과 최댓값을 구하여 출력하면 된다.
Main함수에 모든 알고리즘을 구현하여 넣으면 되지만 최근에 함수를 이용하여 프로그램 구현하는걸 연습하고 있으므로 함수를 이용하여 구현하였다.
#include <vector>
#include <stdio.h>
#include <iostream>
using namespace std;
int getMAX(vector<int> arr){ //만약 배열의 값이 변경된다면 주소값을 넘겨야하지만 값이 변경되지 않으므로 복사값을 넘긴다.
int max=arr[0]; // 배열의 첫번째 값을 최대값으로 지정
int len=arr.size(); // 배열 요소의 개수를 len 변수에 저장
//0번째 값을 최대값을 저장하였으므로 1번째 값부터 N-1번째 값까지 배열을 순환하면서 현재
최대값과 값을 비교하여 배열 값이 더 크면 max값을 바꾼다.
for(int i=1;i<len;i++){
if(max<arr[i])
max=arr[i];
}
// 배열 순환 후 max값 반환
return max;
}
int getMIN(vector<int> arr){ //만약 배열의 값이 변경된다면 주소값을 넘겨야하지만 값이 변경되지 않으므로 복사값을 넘긴다.
int min=arr[0]; //배열의 첫번째 값을 최솟값으로 지정
int len=arr.size(); // 배열 요소의 개수를 len 변수에 저장
//0번째 값을 최소값을 저장하였으므로 1번째 값부터 N-1번째 값까지 배열을 순환하면서 현재
최소값과 값을 비교하여 배열 값이 더 작으면 min값을 바꾼다.
for(int i=1;i<len;i++){
if(min>arr[i])
min=arr[i];
}
//배열 순환후 min 값 반환
return min;
}
int main(){
int N;
scanf("%d",&N); //N 입력
vector<int> arr(N); //N의 크기만큼 벡터 선언
int i=0;
for(i;i<N;i++){
scanf("%d",&arr[i]); //N의 크기만큼 배열에 값을 입력하여 집어 넣는다.
}
//get MAX
int max=getMAX(arr); // 배열에서 최대값을 구하는 함수
int min=getMIN(arr); // 배열에서 최솟값을 구하는 함수
printf("%d %d",min,max); // 구한 min 값과 max값을 출력
return 0;
}
반응형
'개발자 > C or C++' 카테고리의 다른 글
[백준] 2572번 (0) | 2021.10.03 |
---|---|
[백준] 2562번 (0) | 2021.10.02 |
[백준] 2217번 (0) | 2021.10.02 |
[백준] 11399번 (0) | 2021.10.02 |
[백준] 11047번 (0) | 2021.10.02 |
댓글