본문 바로가기

프로그래밍/백준

[백준] 10818. 최소, 최대

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

입력

 

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

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

예제 입력 1

5
20 10 35 30 7

예제 출력 1

7 35

 

 

나의 풀이

n=int(input())  #정수 n개 조건 지정

numlist=list(map(int, input().split()))  #정수 받아오기

min=max=numlist[0]   #변수 초기화

for i in numlist[1:n]:  #최소/최댓값 비교입력
    if min>i:
        min=i
    elif max<i:
        max=i
        
print(min, max)

 

굿!

 

풀기 시작한 지 얼마 안 되긴 했지만 저 입출력 조건이 항상 은근히 신경쓰인다,,,

항상 저 입출력 때문에 한 번에 통과하는 경우가 없음 ㅜㅜ
 
정수 n개를 받아와야 한다는 조건 때문에 n개의 정수를 받아올 때 
처음에는 for문을 사용해서 리스트에 n회 입력시켰었는데,
 
문제에서 제시한 조건처럼 한 줄로 받아오려면 한 번에 입력받아서 나눠주는 수밖에 없었다...
그래서 계속 틀렸다고 나오는 거였다.
 
결국 map을 이용해서 저렇게 바꿔주긴 했지만
입력받을 때는 무조건 한 번에 입력받도록 해놓은 구조상
n개 이상을 입력받더라도 구별할 수가 없어서 
아예 n개만 받아오도록 조건을 지정할 수는 없나? 하고 잠깐 고민했는데
 
어차피 문제에서부터 이미 n개의 정수가 주어진다고 했으니 위에 입력 부분은 그냥 냅두고
최소/최댓값 구할 때만 리스트에서 n개까지만 비교하도록 해놓았다.

생각해보니 파이썬에는 max(), min()이 내장되어 있어서 저렇게 할 필요까지도 없었던 것~푸하하

'프로그래밍 > 백준' 카테고리의 다른 글

[백준] 2309. 일곱 난쟁이  (0) 2022.11.15
[백준] 10870. 피보나치 수 5  (0) 2022.11.11
[백준] 2460. 지능형 기차 2  (0) 2022.11.11
[백준] 3460. 이진수  (1) 2022.11.11
[백준] 2501. 약수 구하기  (0) 2022.11.11