나의 풀이
import sys
def _massage(name_list, massage_dict, group_id):
answer = [f"Group {group_id}"]
for idx, now_info in enumerate(massage_dict.values(), 0):
for bad_idx in range(len(now_info)):
if (now_info[bad_idx] == 'N'):
answer.append(f"{name_list[idx - (bad_idx+1)]} was nasty about {name_list[idx]}")
if (len(answer) == 1):
answer.append("Nobody was nasty")
return answer
group_id = 0
while True:
n = int(sys.stdin.readline())
if (n == 0):
break
group_id += 1
if (group_id != 1):
print()
name_list = []
massage_dict = {}
for _ in range(n):
info_list = sys.stdin.readline().rstrip().split()
name_list.append(info_list[0])
massage_dict[info_list[0]] = info_list[1:]
result_massgae = _massage(name_list, massage_dict, group_id)
print('\n'.join(result_massgae))
시간 복잡도
def _massage(name_list, massage_dict, group_id) : 그룹에서 나쁜말 메시지 리턴하는 함수 ( 이차형 시간 복잡도 )
해당 알고리즘 시간 복잡도 : 이차형 시간 복잡도 ( O(n**2) )