#36. 백준 10818번 문제 풀이: 최소, 최대 문제 원본 보기
N개의 정수에서 최솟값과 최댓값을 구하는 프로그램 작성 입력: 첫줄에 정수의 개수 N, 둘째 줄에 N개의 정수가 공백 구분으로 주어진다. 출력: 최대값과 최솟값을 공백으로 출력
입력/출력
--입력--
5
20 10 35 30 7
--출력--
7 35
문제풀이+해설
루프를 돌리면서 최대값과 최솟값을 비교하면서 값을 저장해 둔다.
중요한 것은 처음 초기값을 정하는 일이다.
문제 조건에 정수 -1,000,000 과 1,000,000 사이라 했으니 초기값을 최댓값 -1,000,000, 최솟값을 1,000,000 으로 잡는 방법이 있다.
다른 방법은 첫번째 입력된 값을 최솟값과 최댓값으로 잡는 방법도 있다.
여기서는 첫번째 입력값을 최대, 최솟값으로 초기화 하고 풀어 보자.
--
최솟값=첫번째 입력값
최댓값=첫번째 입력값
루프:
  if(최솟값 > 비교값) 최솟값 = 비교값
  if(최댓값 < 비교값) 최댓값 = 비교값
출력(최솟값, 최댓값)
code sol.

n = int(input())
# 숫자를 입력받아 정수로 변환해서 n(정수의 개수) 에 대입
a = list(map(int, input().split())) 
# 공백문자 구분으로 숫자열을 받아서 정수로 변환 후 리스트로 저장.
for i in range(n): # 주어진 개수 만큼 루프
  if i == 0:
    min = max = a[i] # 최대/최소값 초기값은 첫번 째 입력 값으로 세팅
  else:
    if min > a[i]: # 최솟값보다 작으면 값 변경
      min = a[i]
    if max < a[i]: # 최댓값보다 크면 값 변경
      max = a[i]

print(min, max) # 최솟값 최댓값 출력
© 코드솔 - CodeSol. All Rights Reserved.