Dev/PS

[백준/BOJ] 10818번: 최소, 최대 (Python) 풀이

KangJerry 2024. 5. 27. 23:44

Baekjoon Online Judge (BOJ) 의 10818번 문제인 '최소, 최대' 를 풀어보았다.
 
[문제 정보]
https://www.acmicpc.net/problem/10818


문제 개요:

N개의 정수가 주어지고, 이 N개의 정수들 중 최솟값과 최댓값을 구하면 되는 문제이다.

이 문제는 파이썬에서는 두 가지 방법이 있기에 두 방법 모두 풀이해 보려고 한다.

모든 코드에서 공통되는 1번 방법, 파이썬 내장 함수를 활용한 2번 방법이 있다.

 

1번 방법 알고리즘:

  1. N(정수의 개수), 공백으로 구분된 N개의 정수를 입력받아서 list 형태로 만들어 arr 변수에 초기화시킨다.
  2. 최솟값 최댓값을 구해야하므로, 비교를 위하여 maxVal, minVal 변수를 만들고 각각 0번째 arr 값으로 초기화시킨다.
  3. arr의 길이만큼 반복하는 반복문을 만든다.
  4. i번째 arr 값과 maxVal 값을 비교하여 maxVal이 더 작을 경우, 즉 현재 가리킨 값이 들어있는 최댓값보다 더 크다는 말과 같기에 현재 가리키는 arr 값을 maxVal에 초기화시킨다.
  5. i번째 arr 값과 minVal 값을 비교하여 minVal이 더 클 경우, 즉 현재 가리킨 값이 들어있는 최솟값보다 더 작다는 말과 같기에 현재 가리키는 arr 값을 minVal에 초기화시킨다.
  6. 위 과정을 반복문이 끝날때 까지 반복하고, 구해진 최솟값과 최댓값을 출력해준다.

 

1번 방법 코드:

N = int(input())
arr = list(map(int, input().split()))
maxVal = arr[0]
minVal = arr[0]

for i in range(0, len(arr)):
    if arr[i] > maxVal:
        maxVal = arr[i]
    if arr[i] < minVal:
        minVal = arr[i]

print(minVal, maxVal)

 

2번 방법 알고리즘:

2번 방법은 딱히 알고리즘이랄게 없이, 파이썬의 내장함수인 min(), max()를 사용하면 list의 값 중 가장 작은, 가장 큰 값을 찾아내준다.

  1. N(정수의 개수), 공백으로 구분된 N개의 정수를 입력받아서 list 형태로 만들어 arr 변수에 초기화시킨다.
  2. 파이썬의 내장함수인 min(), max()를 활용하여 바로 최솟값과 최댓값을 출력해준다.

 

2번 방법 코드:

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

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

 

위 풀이에 대한 질문이나 틀린 정보가 있다면 댓글로 말씀해 주시면 감사하겠습니다!
 
 

728x90