본문 바로가기

백준 문제풀이/1차원 배열

백준 10818 C / 단계별로 풀어보기 - 1차원 배열 1

 

안녕하세요.

 

이번에는 1차원 배열입니다.

변수를 하나하나 일일이 선언 안해줘도 되고 참 좋죠.

오늘은 그 첫 번째, 10818 번 최소, 최대 입니다. (BOJ 10818 C)

https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

이게 왜 1차원 배열 문제인지는 모르겠습니다... 배열을 굳이 쓸 필요가 없어보이네요.

그냥 풀겠습니다.

평소 변수를 0으로 초기화하지만, 최솟값과 최댓값은 다르게 선언해야 합니다.

-1,000,000 에서 1,000,000 까지니깐 최솟값을 첨에 100만으로, 최댓값을 -100만으로 해줘야 합니다.

0으로 선언해버리면 다 음수만 입력됐을 때, 원하는 값이 안 나오기 때문이죠.

 

그럼 코드는 이런식으로 되겠습니다.

#include <stdio.h>

int main()
{
	int N = 0, i = 0, num = 0;
	int min = 1000000;
	int max = -1000000;
	scanf("%d", &N);

	for (i = 0; i < N; i++)
	{
		scanf("%d", &num);
		if (num <= min)
			min = num;
		if (num >= max)
			max = num;
	}
	printf("%d %d", min, max);
	return 0;
}

 

 

감사합니다.