[BOJ] 25757. 임스와 함께하는 미니게임

Jimeaning·2023년 12월 23일
0

코딩테스트

목록 보기
135/143

Python3

문제

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

키워드

  • 구현
  • 자료구조
  • 문자열

문제 풀이

문제 요구사항

플레이하기를 신청한 횟수 NN과 플레이할 게임의 종류가 주어질 때, 최대 몇 번이나 게임을 플레이할 수 있는지 구하는 프로그램

  • 윷놀이 YY, 같은 그림 찾기 FF, 원카드 OO는 각각 2, 3, 4 명이서 플레이하는 게임이며 인원수가 부족하면 게임을 시작할 수 없다.
  • 여러 번 미니게임을 플레이하고자 하는 사람이 있으나, 한 번 같이 플레이한 사람과는 다시 플레이하지 않는다.

변수 및 함수 설명

  • n : 같이 플레이하기를 신청한 횟수 (1N100,000)(1 \le N \le 100,000)
  • game : 플레이할 게임의 종류
  • arr : 같이 플레이하고자 하는 사람들의 이름 리스트
    (1(1 \le 문자열 길이 20)\le 20)

풀이

  • 게임을 할 횟수와 플레이할 게임의 종류를 입력받는다
  • 횟수만큼 사람의 이름을 입력받고 arr 안에 저장한다
  • arr 내 중복을 제거한다
  • 인원수가 부족하면 하지 않는다고 했으므로 Y, F, O에 따라 나눈 몫만 출력한다.

최종 코드

n, game = map(str, input().split())
arr = []

n = int(n)

for _ in range(n):
    arr.append(input())

arr = set(arr)

if game == "Y":
    print(len(arr))
elif game == "F":
    print(len(arr) // 2)
elif game == "O":
    print(len(arr) // 3)

피드백

처음에 for문 안에서 arr 리스트 안에 있는 이름이면 안 넣는 식으로 코드를 짰었는데 시간 초과가 났다. 당연함 .. n의 범위를 안 보고 놓쳤다. 한 번에 다 받고 set으로 중복을 제거해주었다.

profile
I mean

0개의 댓글