728x90
반응형
https://www.acmicpc.net/problem/1159
1159번: 농구 경기
상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작
www.acmicpc.net
<접근>
입력을 받은 성의 첫 글자를 딕셔너리의 키로 정하고, 해당 글자의 개수를 세어준다. 5글자가 넘으면 저장하여, 저장된 문자가 있으면 문자들을 출력하고, 없으면 'PREDAJA'를 출력한다.
<입력>
N = int(input())
names = {}
for _ in range(N):
name = input()
총 성의 개수 N을 입력받는다. names는 각 성의 첫 글자를 key로 한 글자의 개수를 세어주기 위해 선언해준다. 그리고 각각의 성인 name을 입력받는다.
<정리>
if name[0] in names:
names[name[0]] += 1
else:
names[name[0]] = 1
만약 입력받는 성의 첫 글자가 이미 names에 존재하면 해당 값을 1 증가시킨다. 만약 존재하지 않고 처음 나온 글자라면 해당 key의 값을 1로 선언한다.
<분류>
answer = []
for i in names:
if names[i] > 4:
answer.append(i)
answer.sort()
print('PREDAJA' if len(answer) == 0 else ''.join(answer))
5개가 넘는 문자를 담을 answer을 선언한다. 만약 names에 있는 문자 중 5개 이상의 글자가 있으면 answer에 추가해준다. 정답은 오름차순으로 출력해야 하니 answer을 정렬해준다.
만약 answer의 개수가 0이면 'PREDAJA'를 출력하고, 아닌 경우 해당 문자들을 붙여서 출력한다.
<전체 코드>
N = int(input())
names = {}
for _ in range(N):
name = input()
if name[0] in names:
names[name[0]] += 1
else:
names[name[0]] = 1
answer = []
for i in names:
if names[i] > 4:
answer.append(i)
answer.sort()
print('PREDAJA' if len(answer) == 0 else ''.join(answer))
728x90
반응형
'# Coding > # 백준' 카테고리의 다른 글
[백준 / 1238] 파티 - Python (0) | 2021.03.31 |
---|---|
[백준 / 1182] 부분수열의 합 - Python (0) | 2021.03.29 |
[백준 / 1120] 문자열 - Python (0) | 2021.03.25 |
[백준 / 1076] 저항 - Python (0) | 2021.03.25 |
[백준 / 1068] 트리 - Python (0) | 2021.03.25 |