반응형
문제
https://www.acmicpc.net/problem/25757
문제 설명
- 세 종류의 미니게임을 플레이한다.
- Y(윷놀이), F(같은 그림 찾기), O(원카드) 세 종류의 게임은 각각 2, 3, 4명이서 플레이하는 게임이다.
- 각 게임은 인원수가 부족하면 게임을 시작할 수 없다.
- N개의 플레이 신청과, 플레이 게임의 종류가 주어질 때 최대 몇 번이나 게임을 플레이 가능한지 구한다.
- 한 번 같이 플레이한 사람과 다시 플레이하지 않는다.
풀이
중복으로 같은 플레이어가 들어올 수 있으니 딕셔너리에 참가 신청 명단을 저장했다.
그 후 각 게임에 필요한 인원만큼 계산하여 총 플레이 횟수를 구했다.
- 초기에 각 게임을 1,2,3으로 매핑한다.(게임 당 필요한 인원 수)
- 전체 플레이어의 수 // 필요한 인원 수를 통해 총 게임 수를 구한다.
코드
import sys
input = sys.stdin.readline
div = {'Y': 1, 'F': 2, 'O': 3}
N,game = input().split()
N = int(N)
player = set()
for i in range(N):
player.add(input().strip())
print(len(player) // div[game])
시간복잡도
- N은 최대 $10**5$이므로 $O(10**5)$ 정도의 시간이 소요된다.
반응형
'알고리즘' 카테고리의 다른 글
| [파이썬/python] 백준 - 25551 멋쟁이 포닉스 (4) | 2025.08.14 |
|---|---|
| [파이썬/python] 백준 - 5376 소수를 분수로 (2) | 2025.08.13 |
| [파이썬/python] 백준 - 11564 점프왕 최준민 (0) | 2025.08.11 |
| [파이썬/python] 백준 - 16940 BFS 스페셜 저지 (2) | 2025.08.08 |
| [파이썬/python] 백준 - 18234 당근 훔쳐 먹기 (3) | 2025.08.07 |