문제 1.


정리
- 투표수(n) 입력 받기
- 1번 ~ 9번(key)에 대한 점수(value)를 가진 딕셔너리(score) 생성
- 계급에 따른 차등점수를 더할 딕셔너리(weight) 생성
- 투표수만큼 반복하면서 계급(grade)와 투표할 후보(can) 입력받기
- 투표한 후보(can)과 일치하는 딕셔너리 score의 key값을 찾아 그 key의 value에 계급(grade)와 일치하는 딕셔너리 (score)의 차등점수(value)를 더한다.
- value값이 가장큰 key값을 찾아 출력
코드
# playdata coding test 1.
n = int(input()) # 투표수
scores = {i:0 for i in range(1,10)} # 1 ~ 9번 후보(key)에 대한 투표점수(value)를 가진 dict 생성
weight = {'A':3, 'B':2, 'C':1} # 계급에 따른 투표의 차등점수 (ex. A계급 -> 3점)
for _ in range(n): # 투표수 만큼 반복
grade, can = input().split() # 계급과 투표할 후보 입력 받기
can = int(can)
scores[can] += weight[grade] # 투표한 후보(can)인 key에 맞는 value에 weight에서 계급(grade)에 매칭되는 value를 더한다.
max_can = max(scores, key=scores.get) # value값이 제일 큰 value의 key값 출력
print(max_can)'개인공부 > 알고리즘' 카테고리의 다른 글
| [백준] 7569번 토마토 (파이썬) (2) | 2023.12.07 |
|---|---|
| 알고리즘 문제 풀이(코딩테스트 문제 3) (0) | 2023.10.28 |
| 알고리즘 문제 풀이(코딩테스트 문제 2) (1) | 2023.10.28 |
| 알고리즘 문제 풀이(재귀호출(하노이의 탑), 순차 탐색, 선택 정렬, 삽입정렬) (0) | 2023.10.01 |
| 알고리즘 문제 풀이(최대값, 최소값, 재귀호출, 최대공약수, 피보나치) (1) | 2023.09.17 |