반응형
⭕ 파이썬 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()를 사용함으로써 코드를 간결하고 효율적으로 작성하는 방법을 배웠습니다. ✨
- 문제 해결의 다양한 접근법: 동일한 문제를 해결하는 데 여러 가지 방법이 있을 수 있으며, 상황에 따라 적합한 방법을 선택하는 것이 중요함을 깨달았습니다. 💡
➡️ 개선할 점 🔧
- 다양한 문제 해결 방법 익히기: 문제 해결 시 다양한 접근법을 고려하고, 각 방법의 장단점을 명확히 이해하는 연습을 해야 합니다. 🧠
- 코드 최적화: 간결하면서도 효율적인 코드를 작성하는 습관을 기르도록 노력해야 합니다. ✍️
- 파이썬의 다양한 기능 학습: 파이썬의 다양한 내장 함수와 라이브러리를 적극적으로 학습하고 활용할 필요가 있습니다. 🐍📘
반응형
'프론트엔드 > 알고리즘' 카테고리의 다른 글
파이썬 Python | 알고리즘 | 백준 생일 (85) | 2024.08.08 |
---|---|
파이썬 Python | 알고리즘 | 백준 단어 정렬 (90) | 2024.08.07 |
파이썬 Python | 알고리즘 | 백준 나이순 정렬 (90) | 2024.08.06 |
파이썬 Python | 알고리즘 | 백준 일곱 난쟁이 (92) | 2024.08.05 |
파이썬 Python | 알고리즘 | ⭐⭐⭐⭐ ArrayList (61) | 2024.06.13 |
파이썬 Python | 입력 처리의 모든 것: 정수와 문자열에서 2차원 배열까지 (65) | 2024.06.12 |
파이썬 Python | 알고리즘 | 카카오 개발자 코딩테스트 및 오픈채팅방 알고리즘 (63) | 2024.06.12 |
파이썬 Python | 알고리즘 | 시간 복잡도 (63) | 2024.06.12 |