728x90
🃏
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 |