백준(BEAKJOON) | 단계별로 풀어보기
5-1단계 #10818번
10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net
문제 |
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력 |
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다.
모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력 |
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
🥕 c언어는 처음에 N을 입력 받고 for문에서 N만큼 반복하여 정수를 입력 받을 수 있도록 코드를 짰다. 정수는 배열에 저장했다.
최댓값과 최솟값은 배열에서 가장 첫 번째 값(a[0)으로 임의로 지정하고, for문에서 max, min을 찾았다.
방법)
최댓값 -> max < a[i]이면 max = a[i]이다.
최솟값 -> min > a[i]이면 min = a[i]이다.
파이썬은 반복문을 사용하지 않고 리스트로 입력받고, 최댓값과 최솟값을 간단하게 구했다. c언어로 푼 것과 같은 맥락으로 풀어도 된다.
-코드 첨부-
C언어
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <stdio.h>
int main(void)
{
int N, max, min;
int a[1000001];
scanf("%d", &N);
for(int i=0; i<N; i++){
scanf("%d", &a[i]);
}
max = a[0];
min = a[0];
for(int i=1; i<N; i++){
if(max<a[i]){
max = a[i];
}
else if(min>a[i]){
min = a[i];
}
}
printf("%d %d\n", min, max);
}
|
cs |
파이썬
1
2
3
|
N=int(input())
A=list(map(int,input().split()))
print(min(A),max(A))
|
cs |
'Coding > Baekjoon(백준)' 카테고리의 다른 글
[C언어] 백준 2577번. 숫자의 개수. (0) | 2021.01.19 |
---|---|
[C언어] 백준 2562번. 최댓값. (0) | 2021.01.19 |
[Python, C] 백준 1110번. 더하기 사이클. (0) | 2021.01.12 |
[Python, C] 백준 10952번. A+B - 5. (0) | 2021.01.11 |
[Python, C] 백준 2439번. 별 찍기 - 2. (0) | 2021.01.08 |