SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제
10개의 수를 입력 받아, 최대 수와 최소 수를 제외한 나머지의 평균값을 출력하는 프로그램을 작성하라.
(소수점 첫째 자리에서 반올림한 정수를 출력한다.)
[제약 사항]
각 수는 0 이상 10000 이하의 정수이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 10개의 수가 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
문제풀이
1. 입력받은 한줄의 값을 리스트에 담아 오름차순 정렬한다
2. 오름차순 정렬을 하면 양 끝값이 최대값과 최소값이므로 이를 제외할 수 있게 slice 한다
3. slice 결과의 합을 이용해서 평균을 구한다
작성코드
import sys
sys.stdin = open("input.txt", "r")
T = int(input())
for test_case in range(1, T + 1):
li = list(map(int, input().split()))
li.sort()
end = len(li)
li = li[1:end-1]
avg = sum(li) / len(li)
print(f'#{test_case} {round(avg)}')
하단은 해당 문제를 풀기위해 알아야하는 개념이라서 정리한 것이 아니라,
익숙치 않은 파이썬으로 작성하다보니 개인적으로 생긴 궁금증을 정리한 것이다.
알게된 점 1: 파이썬의 언더스코어(_
)
파이썬의 네이밍 규칙이 궁금해져서 언더스코어 쓰임새를 검색해봤다.
파이썬에서 언더스코어(_)는 다음과 같은 상황에서 사용되는데 크게 5가지의 경우가 있다고 한다.
- 인터프리터(Interpreter)에서 마지막 값을 저장할 때
- 값을 무시하고 싶을 때 (흔히 “I don’t care"라고 부른다.)
- 변수나 함수명에 특별한 의미 또는 기능을 부여하고자 할 때
- 국제화(Internationalization, i18n)/지역화(Localization, l10n) 함수로써 사용할 때
- 숫자 리터럴값의 자릿수 구분을 위한 구분자로써 사용할 때
알게된 점 2: 파이썬 자료형 별 주요 연산자의 시간 복잡도
길어지므로 잘 정리된 블로그 링크를 남기겠다.
'Problem Solving' 카테고리의 다른 글
[JS 알고리즘] Toy 7 - treeDFS (0) | 2022.05.20 |
---|---|
[SWEA] D2 - 1859. 백만 장자 프로젝트 in 파이썬 (0) | 2022.05.19 |
[SWEA] D2 - 1986. 지그재그 숫자 in 파이썬 (0) | 2022.05.19 |
[SWEA] D2 - 1970. 쉬운 거스름돈 in 파이썬 (0) | 2022.05.18 |
[SWEA] D2 - 1989. 초심자의 회문 검사 in 파이썬 (0) | 2022.05.18 |