[Python] 백준 10818번 최대, 최소

2022. 11. 26. 23:27·알고리즘

문제

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

 


풀이1

max, min 함수 사용

n = int(input())
num = list(map(int, input().split()))

# max, min 함수 사용시
print(min(num), max(num))

 

 

풀이2

내장 함수 사용하지 않고 구현

n = int(input())
num = list(map(int, input().split()))

# 내장함수 사용하지 않았을 경우
max_num = num[0]
min_num = num[0]
for i in range(len(num)):
    if max_num <= num[i]:
        max_num = num[i]
    elif min_num >= num[i]:
        min_num = num[i]

print(min_num, max_num)

 

 

다른 풀이 이해하기

1. sort로 정렬하는 방법

n = int(input())
num = list(map(int, input().split()))

num.sort()

print(num[0], num[-1])

 

 

결과

메모리 크기는 풀이1 > 풀이2 이고, 수행 시간은 풀이2 > 풀이1

sort로 정렬한 방식은 메모리 크기는 풀이2와 유사하나 수행 시간이 708ms로 오래 걸린다.

 

 

 

 

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

 

10818번: 최소, 최대

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

www.acmicpc.net

 

저작자표시 비영리 동일조건 (새창열림)

'알고리즘' 카테고리의 다른 글

[Python] 백준 10870번 피보나치 수5  (0) 2022.11.27
[Python] 백준 2460번 지능형 기차2  (0) 2022.11.26
[Python] 백준 2501번 약수 구하기  (0) 2022.11.26
[Python] 백준 3460번 이진수  (0) 2022.11.26
[백준 1110] 더하기 싸이클  (0) 2022.01.11
'알고리즘' 카테고리의 다른 글
  • [Python] 백준 10870번 피보나치 수5
  • [Python] 백준 2460번 지능형 기차2
  • [Python] 백준 2501번 약수 구하기
  • [Python] 백준 3460번 이진수
수웅
수웅
  • 수웅
    야금야금 공부
    수웅
  • 전체
    오늘
    어제
    • 분류 전체보기 (66) N
      • 알고리즘 (37)
      • CS (8)
      • 취준 (0)
      • 안드로이드 (1) N
        • 코틀린 (6)
        • 정리 (9)
        • 프로젝트 (0)
      • Error (1)
      • Git (2)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
수웅
[Python] 백준 10818번 최대, 최소
상단으로

티스토리툴바