반응형
# 문제 링크
# 풀이
T = int(input())
for tc in range(1, T+1):
arr = list(map(int, input().split()))
arr.sort()
arr.pop(-1) # 맨 끝 값 삭제
arr.pop(0)
result = round(sum(arr) / 8)
print(f"#{tc} {result}")
# print("#%d %d" %(tc, round(sum(arr)/8)))
최소 최대값 제외하고 나머지 값의 평균값을 구하는 문제.
따라서 sort()로 정렬해주고 맨 앞(index 0)과 맨 뒤(index -1)를 pop으로 제거해줬다.
문제에 보면 10개의 입력을 받는다고 나와있으니, 최대 최소를 제외한 나머지 값은 8개.
따라서 리스트 값을 sum()으로 다 더해준 다음, 8로 나누고 round()함수로 소수 첫째 자리에서 반올림 처리해준다.
## SWEA 출력 팁
print(f"#{tc} {round(sum(arr)/8)}")
print("#%d %d" %(tc, round(sum(arr)/8)))
print("#" + str(tc), round(sum(arr)/8))
셋 중에 아무거나 사용해도 된다.
## 리스트에서 특정 값 지울래
index 사용하려면 del or pop
값 사용하려면 remove
## 새롭게 알게 된 지식 💡
리스트 안의 모든 요소를 문자로 변환하고 싶을 때
arr = list(map(str, arr))
리스트 안의 특정한 요소 모두 제거하기
- remove()로 지우면 해당하는 첫 번째 값만 지워짐.
- 따라서, 리스트 컴프리헨션 사용 !
arr = [1, 3, 6, 6, 7, 7, 8]
remove_set = {6, 7}
arr = [i for i in arr if i not in remove_set]
print(arr) # [1, 3, 8]
원치 않는 공백 제거하기 (만일 테스트케이스에 공백이 있는데 지우고 싶다면!)
input().split(' ') 후에 공백제거를 하고 int로 형변환하면 패스됨
공백제거는 strip()
## 오류 해결 ✂️
계속 오류가 났는데 pop은
arr = arr.pop() 이렇게 변수에 재할당 하는 게 아니라,
그냥 arr.pop() 이렇게 써야 하는 것! sort()도 마찬가지.
반응형
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[SWEA/d2] 1945. 간단한 소인수분해 (Python) _딕셔너리 활용 팁 (0) | 2023.11.08 |
---|---|
[SWEA/d2] 1948. 날짜 계산기 (Python) (0) | 2023.11.07 |
[SWEA/d2] 1940. 가랏! RC카! (Python) (0) | 2023.11.07 |
[SWEA/d2] 1204. 최빈수 구하기 (Python) (0) | 2023.11.07 |
[SWEA/d2] 1926. 간단한 369 게임 (Python) (0) | 2023.11.07 |