본문 바로가기
Problem Solving/백준

[백준|파이썬] 25757: 임스와 함께하는 미니게임 (실버5)

by 청량리 물냉면 2023. 4. 23.
반응형
문제

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

 

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

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

www.acmicpc.net

 

 

🐍파이썬
import sys
n, p = sys.stdin.readline().split()
player = set()
ims_p = {"Y":1, "F":2, "O":3}
for _ in range(int(n)):
    player.add(sys.stdin.readline().rstrip())
print(len(player)//ims_p[p])

한 번 플레이한 사람과는 다시 플레이 하지 않는다는 조건에 따라 플레이어들을 set 자료형에 넣어주어 중복을 제거한다.

한 게임에는 무조건 임스가 포함되어 있기 때문에 인원수에서 -1을 뺀 값을 (게임종류:인원수) 형식으로 사전에 등록했다. 

최종적으로 플레이어수에서 임스가 선택할 플레이어의 명수를 나누어주면 게임을 진행할 수 있는 횟수가 나온다.

 

 

다른 풀이 방법

## (25757)임스와 함께하는 미니게임 [실버5]
## 윷놀이 Y : 2명 / 같은 그림 찾기 F : 3명 / 원카드 O : 4명
## 인원수가 부족하면 게임 진행 X
## 한 번 같이 플레이한 사람과는 다시 플레이하지 않음

import sys

if __name__ == "__main__":
    myInput = sys.stdin.readline
    N, game = map(str, myInput().split())
    N = int(N)
    names = set(myInput().rstrip() for _ in range(N)) # 중복이름 제거
    
    if game == 'Y':
        player = 1
    elif game == 'F':
        player = 2
    else:
        player = 3
        
    print(len(names) // player)

사전 구현 대신 if-else 문으로 처리

반응형