차밍이
[파이썬] 백준 16165번 걸그룹 마스터 준석이 본문
반응형
걸그룹 마스터 준석이
문제
정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는 퀴즈 프로그램을 만들고자 한다.
입력
첫 번째 줄에는 총 입력받을 걸그룹의 수 N(0 < N < 100)과 맞혀야 할 문제의 수 M(0 < M < 100)을 입력받는다.
두 번째 줄부터는 각 걸그룹마다 팀의 이름, 걸그룹의 인원수, 멤버의 이름을 한 줄씩 차례대로 입력받는다. 팀과 멤버의 이름은 최대 100글자이며, 모든 글자는 알파벳 소문자이다. 하나의 걸그룹이나 서로 다른 두 걸그룹에 이름이 같은 두 멤버가 있는 경우는 없다.
그다음 줄부터는 M개의 퀴즈를 입력받는다. 각각의 퀴즈는 두 줄로 이루어져 있으며, 팀의 이름이나 멤버의 이름이 첫 줄에 주어지고 퀴즈의 종류를 나타내는 0 또는 1이 두 번째 줄에 주어진다. 퀴즈의 종류가 0일 경우 팀의 이름이 주어지며, 1일 경우 멤버의 이름이 주어진다.
출력
첫 번째 줄부터 차례대로 퀴즈에 대한 답을 출력한다. 퀴즈의 종류가 0일 경우 해당 팀에 속한 멤버의 이름을 사전 순으로 한 줄에 한 명씩 출력한다. 퀴즈의 종류가 1일 경우 해당 멤버가 속한 팀의 이름을 출력한다.
예제 입력 1 복사
3 4
twice
9
jihyo
dahyeon
mina
momo
chaeyoung
jeongyeon
tzuyu
sana
nayeon
blackpink
4
jisu
lisa
rose
jenny
redvelvet
5
wendy
irene
seulgi
yeri
joy
sana
1
wendy
1
twice
0
rose
1
예제 출력 1 복사
twice
redvelvet
chaeyoung
dahyeon
jeongyeon
jihyo
mina
momo
nayeon
sana
tzuyu
blackpink
소스코드
import sys; r = sys.stdin.readline
N, M = map(int, r().split())
dic, dic2 = {}, {}
for _ in range(N):
team = r().rstrip()
mems = []
for i in range(int(r())):
name = r().rstrip()
dic[name] = team
mems.append(name)
dic2[team] = mems
for _ in range(M):
prom = r().rstrip()
cat = int(r())
if cat == 1:
print(dic[prom])
else:
memb = dic2[prom]
print('\n'.join(sorted(memb)))
-
결과
- 메모리 : 29284 KB
- 시간 : 56 ms
-
문제 풀이
- 멤버의 이름이 주어지면, 팀 명을 출력하고 팀 명이 주어지면, 멤버들의 이름을 정렬해서 출력하는 프로그램을 작성하면 됩니다.
- dictionary를 통해서 값을 반환해 주는 것이 좋을 것 같다고 생각하였습니다. 왜냐하면 해당 key값에따른 value를 바로 출력하는 방식으로 생각했기 때문입니다.
- 멤버들의 이름에 따른 팀명을 저장하는
dic
와 팀명에 따른 멤버들의 이름을 담은dic2
총 두개의 딕셔너리를 먼저 선언하였습니다. - 이후 해당 조건에 맞게 값을 넣은 후 출력하는 방식으로 진행하면 됩니다.
-
문제 출처
반응형
'파이썬 > 알고리즘' 카테고리의 다른 글
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 링크드 리스트(Linked List) (0) | 2021.02.08 |
---|---|
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 스택이란? (0) | 2021.02.07 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 자료구조란? (0) | 2021.02.05 |
[파이썬] 백준 9037번 The candy war : list comprehension 연습 (0) | 2020.04.09 |
[파이썬] 백준 14502번 연구소 : DFS + 브루트 포트 (0) | 2020.04.07 |
[파이썬] 백준 17269번 이름궁합 테스트 : itertools 함수 활용 (0) | 2020.04.06 |
[파이썬] 백준 2178번 미로 탐색 - BFS 최단 경로 탐색 (2) | 2020.03.13 |
[파이썬] 백준 2667번 단지번호붙이기 - DFS 방식 문제 풀이 (0) | 2020.03.08 |
관련된 글 보기
Comments