Original Source: https://www.acmicpc.net/problem/14724
14724번: 관리자는 누구?
PROBRAIN, GROW, ARGOS, ADMIN, ANT, MOTION, SPG, COMON, ALMIGHTY중 동문 커뮤니티 관리자로 선발되는 후보가 소속한 동아리의 이름을 대문자로 출력한다.
www.acmicpc.net
문제
BIG 프로젝트로 동문 커뮤니티 웹사이트를 만들려고 한다. 동문 커뮤니티의 관리자는 홈페이지와 선후배 네트워크를 담당하는 일을 한다.
동문 커뮤니티 제작 프로젝트를 맡으신 Mr.Nam 교수님은 동문 커뮤니티 운영을 맡을 중요한 관리자를 뽑아달라는 부탁을 동아리에 전달했다.
회의 결과 다음과 같은 규칙으로 매년 각 동아리에서 관리자를 선출하자는 의견이 나왔다.
- 각 동아리에서는 동아리원 N명을 선출하여, 그 중 백준 온라인 저지 알고리즘 문제를 푼 개수가 가장 많은 사람을 그 동아리의 관리자 후보로 선출한다.
- 각 동아리에서 뽑힌 후보들 중 가장 문제를 많이 푼 후보가 최종적으로 관리자가 된다.
충남대학교 컴퓨터공학과는 다양한 분야의 동아리들이 활동하고 있다.
17년 기준으로 PROBRAIN, GROW, ARGOS, ADMIN, ANT, MOTION, SPG, COMON, ALMIGHTY 이렇게 총 9개의 동아리가 있고, 각 동아리에는 최소 N명의 동아리원이 있을 때, 동문 커뮤니티 관리자는 어느 동아리에서 선출 될 것인지 알아내어라.
입력
첫 번째 줄은 동아리원의 수 N이 주어진다. (1 ≤ N ≤ 100)
두 번째 줄부터 마지막 줄 까지 각 동아리별로 N명의 동아리원들의 백준 온라인 저지 알고리즘 문제를 푼 개수가 순서대로 주어진다.
같은 동아리의 동아리원들은 문제를 푼 개수가 같을 수 있지만, 각 동아리에서 선출된 후보들은 문제 푼 개수가 서로 다르다.
각 행은 같은 동아리원으로 구성되어 있으며, 정확히 다음과 같은 동아리명의 순서로 주어진다.
PROBRAIN, GROW, ARGOS, ADMIN, ANT, MOTION, SPG, COMON, ALMIGHTY
각 동아리원들이 문제를 푼 개수를 K라 할 때 (1 ≤ K ≤ 1000) 이다.
출력
PROBRAIN, GROW, ARGOS, ADMIN, ANT, MOTION, SPG, COMON, ALMIGHTY 중 동문 커뮤니티 관리자로 선발되는 후보가 소속한 동아리의 이름을 대문자로 출력한다
사고의 흐름
- 각 동아리에서 가장 많이 문제를 푼 인원을 선출한 다음 그 중에서 다시 가장 많이 문제를 푼 인원을 뽑는다면, 그냥 전체에서 가장 많이 푼 사람을 뽑으면 되는 거잖아?
- 리스트에 동아리 이름을 문자열로 저장해 놓은 다음 인덱싱해서 출력하면 되겠다.
- 그런데 Input이 2차원 리스트라 max() 메서드를 사용해 한번에 전체의 최댓값을 뽑을 수는 없어. 문제처럼 후보를 먼저 선출하여 1차원 리스트를 만든 뒤 거기에서 최댓값을 추려야 되겠다.
내가 작성한 소스코드
import sys
n = sys.stdin.readline().rstrip()
club_names = ['PROBRAIN', 'GROW', 'ARGOS', 'ADMIN', 'ANT', 'MOTION', 'SPG', 'COMON', 'ALMIGHTY']
solved = []
for line in sys.stdin:
solved.append(list(map(int, line.split())))
candidates = []
for i in range(len(club_names)):
candidates.append(max(solved[i]))
max = 0; ans = 0
for i in range(len(club_names)):
if max < candidates[i]:
max = candidates[i]
ans = i
print(club_names[ans])
남이 작성한 소스코드
seiker 님:
https://www.acmicpc.net/source/6759236
피드백
- 애초에 Input을 받을 때 max() 메서드를 사용해서 각 동아리별로 최댓값만 뽑아서 1차원 리스트로 받을 수 있다.
- .index() 메서드를 사용하면 조건에 맞는 원소의 인덱스를 바로 뽑아낼 수 있다.
'BOJ' 카테고리의 다른 글
[실버 4] 11047번: 동전 0 (0) | 2022.08.17 |
---|---|
[브론즈 1] 14659번: 한조서열정리하고옴ㅋㅋ (0) | 2022.08.16 |
[브론즈 2] 14471번: 포인트 카드 (0) | 2022.08.14 |
[실버 1] 2853번: 배 (0) | 2022.08.13 |
[실버 3] 2108번: 통계학 (0) | 2022.08.11 |