[백준] 10818 최소, 최대

cheeeese·2021년 11월 23일
0

코딩테스트 연습

목록 보기
3/151

📖 문제

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

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

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

예제 입력

5
20 10 35 30 7

예제 출력

7 35

💻 내 코드

import random

N=int(input())
mlist=[0 for i in range(N)]
mlist=list(map(int, input().split()))

print(min(mlist),end=" ")
print(max(mlist))

💡 몰랐던 것

✔ list의 크기를 N으로 초기화

mlist=[0 for i in range(N)]

➕ 추가

✔ 다른 풀이
검색하면 이 풀이 많이 나옴

numbers = int(input())
number_list = list(map(int, input().split()))

max_num = number_list[0]
min_num = number_list[0]
for num in number_list:
    
    if num > max_num:
        max_num = num
    if num < min_num:
        min_num = num

print(min_num, max_num)
  • max min 함수를 사용하지 않고 for문을 돌려가며 직접 비교해 최소, 최대값 출력
  • 처음에 max와 min을 리스트 0번째 수로 지정
  • 리스트 안에 저장된 하나의 정수와 비교하며 만약 그 수가 더 크다면 그 수를 최대값으로, 작다면 최소값으로 저장
  • 리스트 크기만큼 반복하면 최소값과 최대값 출력 가능

문제: https://www.acmicpc.net/problem/10818

0개의 댓글