반응형
문제
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))
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준 Python] 1213번 팰린드롬 만들기 (0) | 2023.07.14 |
---|---|
[백준 Python] 1259번 팰린드롬수 문제 풀이 (0) | 2023.07.12 |
[백준 Python] 25501번 재귀의 귀재 문제풀이 (0) | 2023.07.11 |
[백준 Python] 17478번 재귀함수가 뭔가요? 문제풀이(3가지 방법) (0) | 2023.07.11 |
[백준 Python] 10807번 개수 세기 문제 풀이 (0) | 2023.04.06 |