Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 모든 사람에게 적어도 친구가 있는지 여부를 확인하는 프로그램

<시간/>

0에서 n - 1 사이의 숫자로 표현된 n명의 사람이 있다고 가정하고 친구의 튜플 목록도 가지고 있습니다. 여기서 친구[i][0]와 친구[i][1]는 친구입니다. 모든 사람에게 친구가 한 명 이상 있는지 확인해야 합니다.

따라서 입력이 n =3friends =[ [0, 1], [1, 2] ]와 같으면 Person 0은 Person 1의 친구이고 Person 1은 Person 0의 친구이고 출력은 True가 됩니다. 2이고 사람 2는 사람 1의 친구입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 사람 :=0으로 채워진 크기 n의 목록
  • 친구의 각 링크에 대해 다음을 수행합니다.
    • 사람[link[0]] :=사실
    • 사람[link[1]] :=사실
  • 사람의 각 사람에 대해 다음을 수행합니다.
    • 사람이 비어 있으면
      • 거짓을 반환
  • 참 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def solve(self, n, friends):
      people = [0 for i in range(n)]
      for link in friends:
         people[link[0]] = True
         people[link[1]] = True
      for person in people:
         if not person:
            return False
      return True
ob = Solution()
n = 3
friends = [ [0, 1], [1, 2] ]
print(ob.solve(n, friends))

입력

3, [[0, 1],[1, 2]]

출력

True