반응형
https://www.acmicpc.net/problem/2953
문제
"나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5점까지 있다.
각 참가자가 얻은 점수는 다른 사람이 평가해 준 점수의 합이다. 이 쇼의 우승자는 가장 많은 점수를 얻은 사람이 된다.
각 참가자가 얻은 평가 점수가 주어졌을 때, 우승자와 그의 점수를 구하는 프로그램을 작성하시오.
입력
총 다섯 개 줄에 각 참가자가 얻은 네 개의 평가 점수가 공백으로 구분되어 주어진다. 첫 번째 참가자부터 다섯 번째 참가자까지 순서대로 주어진다. 항상 우승자가 유일한 경우만 입력으로 주어진다.
출력
첫째 줄에 우승자의 번호와 그가 얻은 점수를 출력한다.
예제 입력 1 복사
5 4 4 5
5 4 4 4
5 5 4 4
5 5 5 4
4 4 4 5
예제 출력 1 복사
4 19
예제 입력 2 복사
4 4 3 3
5 4 3 5
5 5 2 4
5 5 5 1
4 4 4 4
예제 출력 2 복사
2 17
<문제 해석>
1) 5명의 참가자가 각각 4번의 점수를 받는다.
2) 가장 많은 점수를 받은 참가자와 그 점수를 출력한다.
3) 우승자는 항상 한 명이다. (동점자를 체크할 필요 없음)
2차원 배열 입력 받는 방법
변수명 = [list(map(int, input().split())) for _ in range(참가자수)]
<문제 풀이>
참가자들의 점수를 2차원 배열로 받아서 for문으로 순차 탐색한다.
각 참가자의 점수의 총합을 저장하면서 max_score 값을 갱신해 나간다.
마지막에 max_score값에 해당하는 참가자의 번호와 점수를 출력한다.
<코드>
human = [list(map(int, input().split())) for _ in range(5)]
human_score = [0]*5
max_score = 0
for i in range(5):
sum = 0
for j in range(4):
sum += human[i][j]
human_score[i] = sum
max_score = max(max_score, sum)
for i in range(5):
if human_score[i] == max_score:
print(i+1, max_score)
break
반응형
'알고리즘 PS > 자료구조' 카테고리의 다른 글
[백준] 11866번 - 요세푸스 문제0 (Python) (0) | 2024.03.31 |
---|---|
[백준] 10828번 - 스택 (Python) (0) | 2024.03.23 |
[백준] 10818번 - 최소, 최대 (Python) (0) | 2024.03.16 |
[백준] 11286번 - 절댓값 힙 (Java)(◎) (0) | 2023.01.03 |
[백준] 2164번 - 카드2 (Java)(Python) (0) | 2023.01.03 |
댓글