본문 바로가기
프론트엔드/알고리즘

파이썬 Python | 백준 | 문제 10818번: 최소, 최대

by YUNI Heo 2024. 6. 13.
반응형

 

⭕ 파이썬 Python | 백준 | 문제 10818번: 최소, 최대

➡️ 문제 설명

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

 

문제 출처

  • 문제를 만든 사람: baekjoon
  • 데이터를 추가한 사람: lina, topology

 

알고리즘 분류

  • 수학
  • 구현

 

➡️ 접근 방법 1: 직접 구현

첫 번째 접근 방법은 직접 최솟값과 최댓값을 찾는 알고리즘을 구현하는 것이었습니다. 이를 통해 기본적인 반복문과 조건문 사용에 대한 이해를 높이고자 했습니다.

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

maximum = arr[0]
minimum = arr[0]

for i in range(1, n):
    if maximum < arr[i]:
        maximum = arr[i]
    elif minimum > arr[i]:
        minimum = arr[i]

print(minimum, maximum)

 

  • 입력받은 정수의 개수를 변수 n에 저장합니다.
  • 공백으로 구분된 정수들을 리스트 arr에 저장합니다.
  • maximum과 minimum 변수를 초기화합니다.
  • 리스트의 두 번째 요소부터 마지막 요소까지 순회하며 최댓값과 최솟값을 업데이트합니다.
  • 최종적으로 minimum과 maximum을 출력합니다.

 

장점

  • 알고리즘의 기본 원리를 이해하는 데 도움이 됨
  • 각 단계의 논리적 흐름을 명확히 이해할 수 있음

단점

  • 코드가 다소 길고, 간단한 문제에 비해 복잡해 보임
  • 파이썬 내장 함수를 활용하지 않아 비효율적일 수 있음

 

 

 

➡️ 접근 방법 2: 내장 함수 활용

두 번째 접근 방법은 파이썬 내장 함수인 min()과 max()를 사용하는 것이었습니다. 이는 간결하고 효율적인 코드 작성을 목표로 했습니다.

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

print(min(arr), max(arr))

 

  • 입력받은 정수의 개수를 변수 n에 저장합니다.
  • 공백으로 구분된 정수들을 리스트 arr에 저장합니다.
  • 내장 함수 min()과 max()를 사용하여 리스트 arr의 최솟값과 최댓값을 찾고 출력합니다.

 

장점

  • 코드가 매우 간결하고 이해하기 쉬움
  • 파이썬의 강력한 내장 함수를 활용하여 효율적임

단점

  • 알고리즘의 동작 원리를 직접 구현하지 않아서 학습 효과가 덜할 수 있음
  • 특정 프로그래밍 언어의 내장 함수에 의존적임

 

➡️ 배운 점 📚

 

  • 기본 알고리즘 구현: 직접 최솟값과 최댓값을 찾는 과정을 통해 반복문과 조건문의 사용법을 복습할 수 있었습니다. 🔄
  • 내장 함수 활용: 파이썬의 내장 함수 min()과 max()를 사용함으로써 코드를 간결하고 효율적으로 작성하는 방법을 배웠습니다. ✨
  • 문제 해결의 다양한 접근법: 동일한 문제를 해결하는 데 여러 가지 방법이 있을 수 있으며, 상황에 따라 적합한 방법을 선택하는 것이 중요함을 깨달았습니다. 💡

 

 

➡️ 개선할 점 🔧

 

  • 다양한 문제 해결 방법 익히기: 문제 해결 시 다양한 접근법을 고려하고, 각 방법의 장단점을 명확히 이해하는 연습을 해야 합니다. 🧠
  • 코드 최적화: 간결하면서도 효율적인 코드를 작성하는 습관을 기르도록 노력해야 합니다. ✍️
  • 파이썬의 다양한 기능 학습: 파이썬의 다양한 내장 함수와 라이브러리를 적극적으로 학습하고 활용할 필요가 있습니다. 🐍📘

 

 

 

반응형