새소식

PS/백준

[백준/25757] 임스와 함께하는 미니게임 (Python)

  • -

Problem : https://www.acmicpc.net/problem/25757

 

25757번: 임스와 함께하는 미니게임

첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 $N$과 같이 플레이할 게임의 종류가 주어진다. $(1 \le N \le 100\,000)$ 두 번째 줄부터 $N$개의 줄에는 같이 플레이하고자 하는 사람들

www.acmicpc.net

 

Difficulty : Silver 5

 

Status : Solved

 

Time : 00:02:49

 


 

문제 설명

 

더보기

임스가 미니게임을 같이할 사람을 찾고 있습니다.

플레이할 미니게임으로는 윷놀이 Y, 같은 그림 찾기 F, 원카드 O가 있습니다. 각각 2, 3, 4 명이서 플레이하는 게임이며 인원수가 부족하면 게임을 시작할 수 없습니다.

사람들이 임스와 같이 플레이하기를 신청한 횟수 N과 임스가 플레이할 게임의 종류가 주어질 때, 최대 몇 번이나 임스와 함께 게임을 플레이할 수 있는지 구하시오.

임스와 여러 번 미니게임을 플레이하고자 하는 사람이 있으나, 임스는 한 번 같이 플레이한 사람과는 다시 플레이하지 않습니다.

임스와 함께 플레이하고자 하는 사람 중 동명이인은 존재하지 않습니다. 임스와 lms0806은 서로 다른 인물입니다.

 

입력 및 출력

 

더보기

입력

 

첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 N과 같이 플레이할 게임의 종류가 주어진다. (1 <= N <= 100,000)

두 번째 줄부터 N개의 줄에는 같이 플레이하고자 하는 사람들의 이름이 문자열로 주어진다. (1 <= 문자열 길이  <= 20)

사람들의 이름은 숫자 또는 영문 대소문자로 구성되어 있다.

 

출력

 

임스가 최대로 몇 번이나 게임을 플레이할 수 있는지 구하시오.

 

입력 예시

 

7 Y
lms0806
lms0806
exponentiale
lms0806
jthis
lms0806
leo020630

 

출력 예시

 

4

 

 


 

풀이

 

집합 자료형을 사용하면 중복 없는 플레이어의 수를 알 수 있다. 또힌 우리는 (미니게임에 필요한 참가자 수 - 1)만큼 나눈 몫만큼 게임을 진행할 수 있다.

 

풀이 코드

import sys
input = sys.stdin.readline
player_set = set()
mode_type = {
  'Y' : 1, 'F' : 2, 'O' : 3
}
N, typ = input().split()
for _ in range(int(N)) :
  player_set.add(input().strip())
print(len(player_set) // mode_type[typ])

풀이 완료!

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.