백준 10818번

신형석·2022년 3월 11일
0

알고리즘 풀이

목록 보기
13/41

백준 10818번은 정수 여러개 중에서, 최솟값과 최댓값을 구하는 문제이다.

나는 최댓값 최솟값 문제를 풀 땐, 항상 이 값들을 저장하는 변수에 각각 적당한 작은 수, 큰 수를 넣고 푼다. 이 문제에서는 정수의 범위가 주어졌기 때문에 이에 맞게 초기화 숫자를 정했다.

또한, 항상 숫자의 개수가 달라지기 때문에 malloc을 이용하여 동적배열을 할당해주었다. 그 이후 숫자를 입력받고, 최댓값 최솟값을 구해낸 후에, 동적배열을 free 명령어를 이용해서 해제해주면 된다.

코드는 다음과 같다:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	int num;
	scanf("%d", &num);
	int* array = (int*)malloc(sizeof(int) * num);
	for (int i = 0; i < num; i++) {
		scanf("%d", &array[i]);
	}
	int max = -1000000; int min = 1000000;
	for (int i = 0; i < num; i++) {
		if (max < array[i]) {
			max = array[i];
		}
		if (min > array[i]) {
			min = array[i];
		}
	}
	printf("%d %d", min, max);
	free(array);
	return 0;
}

0개의 댓글