[브론즈 2] 백준 10040 - 투표 (파이썬)
글 작성자: pental

https://www.acmicpc.net/problem/10040
풀이
- N명의 선수에게 각각 가장 낮은 응모 번호 이상인 응모자 한 명씩을 배정한다.
- 응모자는 B 리스트에, 선수의 응모 기준 번호는 A 리스트에 주어진다.
- 가장 많은 응모자를 배정받은 선수의 번호(1-based)를 출력해야 한다.
count = [0] * N # 각 선수에게 배정된 응모자 수 for i in range(M): # 모든 응모자에 대해 for j in range(N): # 선수 순서대로 확인 if A[j] <= B[i]: # 응모 조건을 만족하면 count[j] += 1 # 해당 선수에 배정 break # 이 응모자는 더 이상 배정되지 않음
A[j] ≤ B[i]인 가장 첫번쨰 선수 J를 찾아서 B[i]를 배정한다.
응모자는 한 번만 배정되며, 여러 선수가 가능하다면 가장 앞에 있는 선수에게 배정된다.
max_vote = 0 who = -1 for i in range(N): if max_vote < count[i]: # 최댓값 갱신 max_vote = count[i] who = i print(who + 1) # 1-based index로 출력
응모자의 투표를 받고 가장 많이 배정된 선수를 출력한다.
코드
# 백준 10040 - 투표 # 분류 : 구현 N, M = map(int, input().split()) A = [int(input()) for _ in range(N)] B = [int(input()) for _ in range(M)] count = [0] * N for i in range(M) : for j in range(N) : if A[j] <= B[i] : count[j] += 1 break max_vote = 0 who = -1 for i in range(N) : if max_vote < count[i] : max_vote = count[i] who = i print(who + 1)
이 글은
(새창열림)
본 저작자 표시, 비영리 규칙 하에 배포할 수 있습니다. 자세한 내용은 Creative Commons 라이선스를 확인하세요.
Creative Commons
본 저작자 표시
비영리
'Programming > 백준' 카테고리의 다른 글
[골드 5] 백준 10710 - 실크로드 (파이썬) (0) | 2025.05.05 |
---|---|
[브론즈 1] 백준 10041 - 관광 (파이썬) (0) | 2025.05.04 |
[브론즈 2] 백준 14471 - 포인트 카드 (파이썬) (0) | 2025.05.04 |
[골드 3] 백준 4179 - 불! (파이썬) (0) | 2025.05.03 |
[실버 5] 백준 31738 - 매우 어려운 문제 (파이썬) (0) | 2025.05.03 |
댓글
이 글 공유하기
다른 글
-
[골드 5] 백준 10710 - 실크로드 (파이썬)
[골드 5] 백준 10710 - 실크로드 (파이썬)
2025.05.05 -
[브론즈 1] 백준 10041 - 관광 (파이썬)
[브론즈 1] 백준 10041 - 관광 (파이썬)
2025.05.04 -
[브론즈 2] 백준 14471 - 포인트 카드 (파이썬)
[브론즈 2] 백준 14471 - 포인트 카드 (파이썬)
2025.05.04 -
[골드 3] 백준 4179 - 불! (파이썬)
[골드 3] 백준 4179 - 불! (파이썬)
2025.05.03
댓글을 사용할 수 없습니다.