Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 코딩테스트
- 리눅스기초
- 리눅스
- 터미널명령어
- 더오름
- Python
- 리눅스셸명령어
- 디렉토리관리
- 파이썬
- 네트워크핵심정리
- 백준1312
- 코테준비
- 네트워크
- 리눅스퍼미션
- 위니브
- javascript
- 링크명령어
- 네트워크면접
- 코테
- 네트워크정리
- 네트워크기초
- 컴퓨터네트워크
- 제주ICT
- Linux
- 제주코딩베이스캠프
- 개발자
- 자료구조
- 백준2587
- 백준
- 파일명령어
Archives
- Today
- Total
hyei-devlog
[Python/파이썬] 백준 10039 평균 점수 본문
📍 문제
https://www.acmicpc.net/problem/10039
📍 전체 코드
print(int(sum(max(40, int(input())) for _ in range(5)) / 5))
📍 문제 풀이
- max(40, int(input())) for _ in range(5) 5개의 정수를 입력받는다. 이때, 입력값이 40보다 작으면 40을 반환하고, 크거나 같으면 입력값을 그대로 반환한다.
- 문제에서 40점 미만인 학생들은 보충 수업을 통해 항상 40점을 받게 된다.
- sum() 입력받은 5개의 정수들을 더하고, 5로 나누어 평균을 계산한다. int형으로 변환하여 소수점을 버린다.
📍 문제 해결을 위한 고민
이 문제는 for문 안에서 if문을 사용하면 아주 쉽게 풀 수 있지만, 코드를 최대한 압축해서 작성하는 연습을 하고 싶었다.
입력값이 40보다 작은 경우 40으로 처리하는 과정을 어떻게 구현할지 고민하다가, max()를 사용하는 방법을 떠올리게 되었다.
max()를 활용하면 조건문 없이도 문제에서 요구한 조건을 간단히 처리할 수 있었다.
⭐️ 중요 포인트 & 개념 정리
max()는 두 값 중 더 큰 값을 반환하는 함수로, 조건문 없이 값을 비교하는 데 유용하다.
뿐만 아니라, 이터러블(리스트, 튜플 등)에서 최대값을 찾거나, key 매개변수를 통해 커스텀 기준으로 최대값을 구할 수도 있다.
1. 일반적인 동작
max(a, b)처럼 두 값을 비교하여 더 큰 값을 반환한다.
이 문제에서는 max(40, input값)으로 입력값이 40보다 작으면 40을 선택하도록 처리했다.
2. 여러 값 비교
max()는 하나의 리스트나 튜플 같은 이터러블(iterable)을 입력받아 그중 최대값을 반환할 수도 있다.
print(max([10, 20, 30, 5])) # 결과: 30
print(max("hello")) # 결과: 'o' (문자열도 알파벳 순으로 비교)
3. key 인자 활용
max()는 단순 비교뿐만 아니라, key 매개변수를 통해 특정 기준을 바탕으로 최대값을 구할 수도 있다.
예를 들어, 문자열의 길이를 기준으로 가장 긴 단어를 찾으려면:
words = ["apple", "banana", "kiwi"]
print(max(words, key=len)) # 결과: 'banana'
'Online Judge > Baekjoon' 카테고리의 다른 글
[Python/파이썬] 백준 25305 커트라인 (0) | 2025.02.01 |
---|---|
[Python/파이썬] 백준 1181 단어 정렬 (0) | 2025.01.29 |
[Python/파이썬] 백준 1284 집 주소 (0) | 2025.01.27 |
[Python/파이썬] 백준 1247 부호 (0) | 2025.01.26 |
[Python/파이썬] 백준 10757 큰수 A + B (0) | 2025.01.26 |