파이썬 백준 2822번
실버 5
https://www.acmicpc.net/problem/2822
문제 보기
분류: 정렬
문제 풀기
입력되는 점수들을 score_ls 리스트 index 와 문제 번호가 일치하도록 입력 받는다.
점수 리스트를 내림차순으로 정렬을 하고 가장 큰 앞쪽 5 개만 남겨두고 나머지를 제거한다.
입력 리스트 score_ls 의 원소를 문제 번호에 맞게 순차적으로 빼내어 5 개로 정렬된 리스트의 원소에 있는지 없는지를 판별하여 있다면 그 값을 누적해 더하고 그 index 도 result_ls 에 순차적으로 저장해 나간다.
socre_ls 의 모든 원소의 검사가 끝나면 totalScore 와 result_ls 를 출력 형식에 맞게 제출한다.
코드 보기
import sys
inputdata = sys.stdin.readline
def fnTotalScore():
sorted_score_ls = sorted(score_ls, reverse=True)
print(sorted_score_ls) # TEST PRINT
sorted_score_ls = sorted_score_ls[:5]
print(sorted_score_ls) # TEST PRINT
totalScore = 0
result_ls = []
for i in range (1, len(score_ls)):
if score_ls[i] in sorted_score_ls:
totalScore += score_ls[i]
result_ls.append(i)
print(totalScore)
print(*result_ls)
if __name__ == "__main__":
score_ls = [0]
for _ in range(8):
score_ls.append(int(inputdata().strip()))
print(score_ls) # TEST PRINT
fnTotalScore()
# 20
# 30
# 50
# 48
# 33
# 66
# 0
# 64
# [0, 20, 30, 50, 48, 33, 66, 0, 64]
# [66, 64, 50, 48, 33, 30, 20, 0, 0]
# [66, 64, 50, 48, 33]
# 261
# 3 4 5 6 8
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 1269 - 대칭 차집합 (0) | 2023.01.05 |
---|---|
[Python] 백준 풀기 1100 - 하얀 칸 (0) | 2023.01.04 |
[Python] 백준 풀기 11441 - 합 구하기 (0) | 2023.01.02 |
[Python] 백준 풀기 1431 - 시리얼 번호 (0) | 2023.01.01 |
[Python] 백준 풀기 11728 - 배열 합치기 (0) | 2022.12.31 |