노베이스 알고리즘 공부 #10. 백준 1159 농구 경기- Python

Anny·2024년 3월 31일
0

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

1. 문제

-- (대충 상근이가 농구에 대한 열정 하나로 국가대표팀 감독이 되었다는 서사)
-- 첫 글자가 같은 선수 5명을 선발하려고 한다. 만약, 성의 첫 글자가 같은 선수가 5명보다 적다면, 상근이는 내일 있을 친선 경기를 기권하려고 한다.
-- 상근이는 내일 경기를 위해 뽑을 수 있는 성의 첫 글자를 모두 구해보려고 한다.
-- 첫째 줄에 선수의 수 N (1 ≤ N ≤ 150)이 주어진다. 다음 N개 줄에는 각 선수의 성이 주어진다. (성은 알파벳 소문자로만 이루어져 있고, 최대 30글자이다)
-- 상근이가 선수 다섯 명을 선발할 수 없는 경우에는 "PREDAJA" (따옴표 없이)를 출력한다.

2. 풀이

2-1. 접근

  1. 입력된 성들의 첫글자만 추출
    2.추출된 첫 글자가 앞에 기록된 첫 글자와 같으면 count
  2. count가 5개 이상 집계 되면 해당 글자 프린트, 아니면 PREDAJA 프린트

2-2. 풀이

N = int(input())
players = [input() for _ in range(N)]

def select_players(N, players):
    first_letters = [player[0] for player in players]  # 입력된 성들의 첫 글자만 추출
    selected_letters = []  # 선발된 선수의 성의 첫 글자를 저장할 리스트

    for letter in first_letters:
        if first_letters.count(letter) >= 5:  # 추출된 첫 글자가 5개 이상이면
            if letter not in selected_letters: 
                selected_letters.append(letter)

    # 선발된 선수의 성의 첫 글자가 없으면
    if not selected_letters:
        print("PREDAJA")
    else:
        selected_letters.sort()  # 사전순으로 정렬
        print("".join(selected_letters))  # 출력


# 선수 선택
select_players(N, players)
profile
Newbie

0개의 댓글