백준 10818 최소, 최대

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

조금 집중 안된 상태로 풀다 보니, 가장 흔한 유형인데도 불구하고 1시간 정도 삽질 한것 같다.

계속 애먹었던 부분은 원소를 배열해서 대소 비교를 하는 부분의 알고리즘을 잘 생각해 내지 못한 것 같다.

문제를 풀고 나서 다른 파이썬 코드를 보고 나니, max, min함수를 통해 쉽게 풀 수 있음을 알게 되었다.
내 코드와 함께 같이 참조해보겠다.

import sys
n = int(sys.stdin.readline())

answer = list(map(int, input().split()))

bigger = answer[0]
smaller = answer[0]

for i in range(1, n):
    if bigger < answer[i]:  # 현재 값이 그 전의 최댓값보다 클때
        bigger = answer[i]

    elif bigger > answer[i]:  # 현재 값이 그 전의 최댓값보다 작을때
        if smaller > answer[i]:
            smaller = answer[i]

print("%d %d" % (smaller, bigger))

A = int(input())
B = list(map(int, input().split()))[:A]

print(min(B), max(B))

이렇게 보니 굉장히 차이가 남을 알 수 있다.
앞으로 다른 간결한 답이 있으면 참고 해야함을 알게 되었다.

C언어를 먼저 배우다보니, C언어를 기반으로 사고를 하는 것 같다.
물론 이 경우는 min,max함수를 잘 몰랐던 경우다.

좋은 웹페이지 즐겨찾기