백준 10818번 문제 링크
문제 이름 : 최소, 최대
주 언어 : Python
태그 : 수학, 구현
solved.ac 등급 : Bronze III (2023/02/21 확인)
문제 보기
문제 :
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력 :
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력 :
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
파이썬 내부 함수인 max, min 함수를 이용하거나, 반복문으로 최대 최소값을 구할 수 있습니다.
max, min 함수를 이용하여 최대 최소값을 찾는 법은 다음과 같습니다.
1. 두번째 줄의 입력을 리스트로 만든다.
2. 리스트에 max 함수와 min 함수를 씌운다.
따라서 두번째 줄의 입력을 어떻게 리스트로 만들 수 있을지가 문제인데, 이는 list 함수와 map 함수를 섞어서 다음과 같이 입력받을 수 있습니다.
만약 내부함수를 굳이 쓰기 싫다 라고 하시는 분은 다음과 같은 과정을 거치실 수 있습니다.
1. 우선 최댓값도 1번 원소 (index = 0) 라고 치고, 최솟값도 1번 원소 (index = 0) 라고 칩니다.
2. N개의 원소를 하나하나 훑으면서 최댓값보다 큰 원소가 나타나면 최댓값을 해당 원소로 바꿔주고, 최솟값보다 작은 원소가 나타나면 최솟값을 해당 원소로 바꾸어줍니다.
이렇게 하면 파이썬의 리스트에 대응하는 자료구조가 없는 언어에서도 최대 / 최소를 구할 수 있습니다.
이 문제는 solved.ac Class 1 에 수록된 문제입니다.
다른 문제도 같이 풀어보시는걸 추천드립니다.
Class 1 문제 모음