티끌모아 태산

16165: 걸그룹 마스터 준석이 본문

백준 문제/해시

16165: 걸그룹 마스터 준석이

goldpig 2024. 3. 27. 19:00
728x90

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

 

16165번: 걸그룹 마스터 준석이

정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는

www.acmicpc.net

설명

정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는 퀴즈 프로그램을 만들고자 한다.

핵심 아이디어

해당 문제는 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는 문제다. 즉, 팀명과 개인 이름을 매치하여 문제를 접근하면 된다. 종류가 0일 경우, 해당 팀에 속한 멤버의 이름을 사전순으로 한 줄에 한명씩 출력. 종류가 1인경우, 해당 멤버가 속한 팀의 이름을 출력한다. 

옵션 1: 하나의 걸그룹이나 서로 다른 두 걸그룹에 중복되는 이름은 없다.

코드 구현

Python

import sys
input = sys.stdin.readline

# 총 걸그룹 수, 문제 수
n, m = map(int, input().split())

# 딕셔너리 형태 key:팀 이름, value:멤버 이름
zero_arr = {}
# key:멤버 이름, value:팀 이름
one_arr = {}

for _ in range(n):
	# 팀명
	team_name = input().rstrip()
	# 그룹에 속한 인원 수
	num = int(input())
	zero_arr[team_name] = [] # 배열을 하나 만들어준다. 멤버들이 들어감
	for j in range(num):
		# 멤버 이름 입력받기
		personal_name = input().rstrip()
		zero_arr[team_name].append(personal_name)
		one_arr[personal_name] = team_name

# 문제 입력받기
for i in range(m):
	# 팀명 혹은 멤버 이름 입력받기
	name = input().rstrip()
	# 종류 입력받기
	kind = int(input())
	if kind == 0: # 멤버 이름 전부 출력
		for i in sorted(zero_arr[name]):
			print(i)
	else: # 팀 이름 출력
		print(one_arr[name])

C++

728x90

'백준 문제 > 해시' 카테고리의 다른 글

17219: 비밀번호 찾기  (0) 2024.03.27
7785: 회사에 있는 사람  (1) 2024.03.27