파이썬/예제

백준 10818번 최소, 최대 - 반복문이 정답은 아니다

thpop 2025. 5. 19. 14:45
반응형

백준 10818번 / 최소, 최대 : https://www.acmicpc.net/problem/10818

 

이번 문제는 N개의 정수가 주어졌을 때, 이 중에서 최솟값과 최댓값을 찾아 공백으로 구분하여 출력하는 프로그램을 만드는 것이다.

 

문제를 푸는 발상 자체는 누구나 간단하게 할 수 있다.

다만 제목에도 적어놨듯이 반복문을 사용하는 것은 추천하지 않는다.

 

나는 처음에 반복문 두개를 중첩하여 리스트를 반복하여 순회하는 코드를 만들었다가 시간 초과가 발생하는 것을 보았고, 다른 방법으로 해결하였다.

 

아래가 처음 만든 코드이다.

N = int(input())
T = list(map(int, input().split()))
max = 0
min = 0

for i in T:
    for j in T:
        if i >= j and i > max:
            max = i
        if i <= j and:
            min = i

print(f"{min} {max}")

 

그리고 다음으로 만든 코드가 리스트와 관련된 내장 함수를 사용하여 간소화한 코드이다.

N = int(input())
T = list(map(int, input().split()))
max = max(T)
min = min(T)

print(f"{min} {max}")

 

훨씬 더 간소함을 알 수 있다.

 

아래는 출력 결과이다.

반응형