Algorithm/백준

[백준 Python] 2822번 점수 계산

얼음새꽃 2023. 7. 14. 22:05
반응형

문제

https://www.acmicpc.net/problem/2822

풀이

python의 경우 정렬해주는 함수(sort, sorted)가 있어 쉽게 풀 수 있다.

1. 질문의 값을 dict에 저장한다

for i in range(8):
        score[i] = int(input())

2.  dict에 저장된 값을 기준으로 내림차순 정렬한다.

score = sorted(score.items(), key = lambda item: item[1], reverse = True)

3. 5개의 최대 값을 가져와서 더하고, 키값(문제번호)는 따로 배열에 저장한다

for key, value in score:
        if i >= 5:
            break
        total_score += int(value)
        questions.append(str(key + 1))
        i += 1

4. 문제를 오름차순 정렬한다

questions.sort()

5. 출력한다.

print(total_score)
print(" ".join(questions))

 

전체 코드

if __name__ == '__main__':
    total_score = 0
    questions = []
    score = {}
    for i in range(8):
        score[i] = int(input())

    score = sorted(score.items(), key = lambda item: item[1], reverse = True)
    i = 0
    for key, value in score:
        if i >= 5:
            break
        total_score += int(value)
        questions.append(str(key + 1))
        i += 1

    questions.sort()
    print(total_score)
    print(" ".join(questions))

 

반응형