백준 웹사이트 "10818번 - 최소, 최대" 문제풀이입니다.
언어는 C언어입니다. (제출 언어: C99)
문제
소스 코드
#include <stdio.h>
int main(void){
int N;
scanf("%d", &N);
int arr[N];
for(int i=0; i<N; i++){
scanf("%d", &arr[i]);
}
int min = arr[0], max = arr[0];
for(int j=0; j<N; j++){
if(arr[j] < min)
min = arr[j];
if(arr[j] > max)
max = arr[j];
}
printf("%d %d", min, max);
}
문제 풀이
주어진 숫자들 중 최대, 최소를 구하는 문제입니다. 사실 이 문제는 숫자들이 입력되는대로 최대, 최소를 비교하며 저장하면 따로 배열을 만들지 않아도 쉽게 풀 수 있습니다. 그러나 단계별로 풀어보기 5단계 "1차원 배열" 섹션인 만큼, 배열을 만들어 풀어봅시다.
배열의 선언은 Line 6와 같이 하며, Line 8 ~ 10에 걸쳐 미리 선언한 배열을 초기화합니다. 여기서 '선언'은 배열에 해당하는 공간을 확보하는 것이며, '초기화'는 그렇게 확보한 공간에 숫자들을 채워넣는 것입니다. 초기화하기 전까지 배열 안에는 무의미한 값들이 채워져있으므로, 반드시 초기화를 한 후에 배열을 이용해야 합니다.
Line 12 ~ 18은 배열에서 최대, 최소를 구하는 코드입니다. 파이썬과 같이 high-level한 언어에서는 min(~) 또는 max(~) 한 줄로 끝날 작업들을 low-level한 C언어에서는 직접 작성해야합니다ㅠㅠ.
반응형
'코딩 > 백준 BOJ' 카테고리의 다른 글
[백준/C언어] 2577번 - 숫자의 개수 (0) | 2021.12.31 |
---|---|
[백준/C언어] 2562번 - 최댓값 (0) | 2021.12.31 |
[백준/C언어] 1110번 - 더하기 사이클 (0) | 2021.12.29 |
[백준/C언어] 10951번 - A+B - 4 (0) | 2021.12.29 |
[백준/C언어] 10952번 - A+B - 5 (0) | 2021.12.29 |