25757 임스와 함께하는 미니게임 - Python

2023. 10. 8. 02:33공부/📝 백준

1. 풀이 코드

times, Game = input().split()
player = set()
for _ in range(int(times)):
    player.add(input())
if Game == "Y":
    X = 1
elif Game == "F":
    X = 2
else:
    X = 3
print(len(player) // X)

  set() 집합으로 만들어서 중복을 없앤 뒤에 작업을 진행했습니다. 다만 한 가지 배운 점이라면 listappend()를, setadd()를 써야 하더라구요.

 


2. 다른 사람의 풀이 코드

s,*a=open(0);print(len({*a})//'`YFO'.find(s[-2]))

  이렇게 푼 코드를 발견했는데 정말 신기하더라구요. 완전 생소한 풀이였기에 코드를 여러번 읽었습니다.

 


s, *a = open(0)

  open(0)에서 표준 입력을 엽니다. 그 후 s에는 첫 번째 문자를, a에는 나머지 문자열을 리스트로 할당합니다. 특히, *a라고 표시하였는데, *는 나머지 모든 값을 리스트로 가져오는 기능을 한다고 합니다.

 

print(len({*a}) // '`YFO'.find(s[-2]))

  이후 *a중괄호 {}를 사용하여 중복된 값을 허용하지 않는 집합을 만들어서 len() 메소드로 길이를 계산합니다. 그리고 문자열 `YFO에서 s[-2]의 문자 위치를 찾아서 집합의 길이를 나눕니다.

 

  정말 신기하고 배울 점이 많은 코드입니다.

 


 

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

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

www.acmicpc.net

 

로그인

 

www.acmicpc.net

 

'공부 > 📝 백준' 카테고리의 다른 글

11365 !밀비 급일 - C  (0) 2024.07.29
11656 접미사 배열 - Python  (0) 2023.12.10
10610 30 - Python  (0) 2023.12.10
1072 게임 - Python  (0) 2023.09.19
10816 숫자 카드 2 - Python  (0) 2023.09.17