코딩테스트

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

yeeejji 2024. 3. 29. 13:02
728x90

문자열, 해시 / 실버 5

🃏

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

 

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

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

www.acmicpc.net

 

 

내 풀이 (1차)

N, game = input().split()
names = []
player = 0

if game == 'Y':
    player = 1
elif game == 'F':
    player = 2
else:
    player = 3

for _ in range(int(N)):
    names.append(input())

print(len(set(names)) // player)

 

 

내 풀이 (2차)

N, game = input().split()
names = []
player = {'Y': 1, 'F': 2, 'O': 3}

for _ in range(int(N)):
    names.append(input())

print(len(set(names)) // player[game])

 

 

접근 방식

 

임스는 한 번 같이 플레이한 사람과는 다시 플레이하지 않는다. ➡ 사람들의 이름을 중복 제거한다. (set() 사용)

Y, F, O는 각각 2, 3, 4명이 필요한 게임이다. ➡ 한 명(임스)을 제외한 값이 각 게임에 필요한 인원이 된다.

정답: 총 사람 수 // 게임에 필요한 인원

 

if문으로 하나하나 처리해 주는 것보다 해시를 사용하는 게 훨씬 편리했고 코드도 줄일 수 있었다!

'코딩테스트' 카테고리의 다른 글

[백준][Python] 10431 줄세우기  (0) 2024.03.31
[백준][Python] 22251 빌런 호석  (0) 2024.03.30
[백준][Python] 9017 크로스 컨트리  (1) 2024.03.29
[백준][Python] 7490 0 만들기  (1) 2024.03.28
[백준][Python] 10828 스택  (0) 2024.03.27