성장일기

[python] 백준 5567 - 결혼식 본문

알고리즘 문제

[python] 백준 5567 - 결혼식

김몽몽 2021. 12. 28. 10:10

동기들의 친구 관계를 모두 조사한 리스트를 바탕으로

결혼식에 초대할 사람 수 구하기

 

1(본인)의 친구거나

친구의 친구까지 초대한다.

 

🌟주의점🌟

1이 항상 앞에 오지는 않는다

(테스트케이스로 알기 힘듦 - 문제를 잘 이해하자)

나는 JOI의 예선 테스트케이스를 보고 이해했다ㅠㅠ

https://www.ioi-jp.org/joi/2009/2010-yo-prob_and_sol/index.html

 

JOI 2009-2010 予選 問題・データ

第9回日本情報オリンピック 予選

www.ioi-jp.org

▲ JOI 2009/2010 9회 예선 문제 3번

import sys
n=int(sys.stdin.readline().rstrip())  #상근이의 동기 수
m=int(sys.stdin.readline().rstrip())  #리스트의 길이
li=[]
result=[]

for i in range(m):  #리스트의 길이만큼
    a,b=map(int,sys.stdin.readline().split())  #친구관계 받아오기
    li.append([a,b])

for i in range(len(li)):  #리스트의 길이 만큼==m
    if li[i][0]==1:  #첫번째 수가 1이면
        result.append(li[i][1])  #두번째 수를 li에 append
    elif li[i][1]==1:  #두번째 수가 1이면
        result.append(li[i][0])  #첫번째 수를 li에 append
    else:
        pass

for i in range(len(result)):  #result의 길이만큼
    for j in range(m):  #리스트의 길이만큼
        if result[i]==li[j][0]:  #result에 있는 요소가 첫번째 요소면
            result.append(li[j][1])
        elif result[i]==li[j][1]:  #result에 있는 요소가 두번째 요소면
            result.append(li[j][0])
        else:
            pass

result=set(result)  #중복 제거
if 1 in result:  #1이 result에 들어있으면 삭제
    result.remove(1)
print(len(result))  #result의 길이