밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. map, split, list를 사용하는 입력 방식
실수나 정수인 여러 값들이 입력값일 때,
split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,
map 내장 함수로 각각의 값들을 int형이나 float형으로 정수, 실수 자료형으로 변환하는 한 뒤,
list로 묶어 리스트 변수에 넣어주는 기법은 매우 많이 쓰입니다.
코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.
num_list = list(map(int, sys.stdin.readline().split()))
2. 파이썬에서 최댓값, 최솟값을 구하는 방법
다른 언어에서는 최댓값, 최솟값을 구할 때 반복문으로 일일이 구현하는 경우가 많습니다.
하지만, 파이썬에서는 최댓값, 최솟값이 필요할 때 굳이 구현하지 않고
쉽게 내장 함수 max, min으로 최댓값, 최솟값을 구할 수 있습니다.
반복문을 사용해서 풀었다면 더 간단하게 max, min 내장 함수도 사용해서 풀어봅시다.
예제 설명
1. 첫 번째 예제
- 입력
5
90 59 29 80 21
- 출력
90 21
- 설명
첫 번째 줄에 입력한 점수의 개수 n은 5입니다.
그다음 줄에 입력한 n개의 점수들은 90, 59, 29, 80, 21입니다.
점수들 중 최댓값은 90, 최솟값은 21이므로
90 21을 출력합니다.
생각한 풀이 과정
첫 번째 줄에 점수의 개수 n을 입력합니다.
사용하는 값이 아니라서 굳이 다른 처리를 해줄 필요는 없습니다.
n = stdin.readline()
n개의 점수를 공백으로 구분해 입력합니다.
각각 int형으로 변환하고 리스트 변수에 넣어줍니다.
scores = list(map(int, stdin.readline().split()))
점수들을 저장한 리스트에서 최댓값을 구합니다.
max_score = max(scores)
점수들을 저장한 리스트에서 최솟값을 구합니다.
min_score = min(scores)
구한 최댓값과 최솟값을 공백으로 구분해 출력합니다.
print(max_score, min_score)
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 첫 번째 줄에 점수의 개수 n을 입력합니다.
# 2 <= n <= 100
n = stdin.readline()
# n개의 점수를 공백으로 구분해 입력합니다.
# 각 점수의 범위는 0 ~ 100입니다.
# 각각 int형으로 변환하고 리스트 변수에 넣어줍니다.
scores = list(map(int, stdin.readline().split()))
# scores에서 최댓값을 구하고 변수에 저장합니다.
max_score = max(scores)
# scores에서 최솟값을 구하고 변수에 저장합니다.
min_score = min(scores)
# n개의 점수 중 최댓값과 최솟값을 공백으로 구분해 출력합니다.
print(max_score, min_score)
제출 결과
댓글