본문 바로가기
Algorithm

[구현/문자열] 백준 1159 농구 경기 - 파이썬(Python)

by jangThang 2022. 3. 1.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1159번: 농구 경기

    상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     이름의 첫 글자가 같은 5명의 선수가 있는지를 확인하는 문제입니다.

     

    2022.02.25 - [Algorithm] - [구현] 백준 1371 가장 많은 글자 - Python

     

    [구현] 백준 1371 가장 많은 글자 - Python

    [ Contents ] 1. 문제 (링크 참조) 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알

    star7sss.tistory.com

     위 문제와 비슷합니다. 알파벳의 갯수를 셀 리스트를 생성하고, 개수를 기록합니다. 이후 5개 이상이면 출력하고, 5개 이상이 아예 없으면 PREDAJA를 출력합니다.

     

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    #입력
    N = int(input())
    alphabet = [0]*26
    for _ in range(N):
        name = input()
        alphabet[ord(name[0])-97] += 1
    
    #5명 이상이면 출력
    res = ''
    for i, char in enumerate(alphabet):
        if char >= 5:
            res += chr(i+97)
    
    #아무도 없으면 항복
    if res == '':
        print("PREDAJA")
    else:
        print(res)

     ord() 함수를 사용하면, 문자를 아스키코드로 변환할 수 있습니다. 아스키코드에서 소문자 알파벳(a~z)은 97부터 123까지입니다.

     반대로 아스키코드에서 알파벳을 출력하려면 chr() 함수를 사용하면 됩니다.

     

    star가 되고나서 Tistory

    반응형

    댓글