SWEA 6057. 그래프의 삼각형(with Python)

하얀족제비·2021년 7월 23일
0

접근 방법

  1. 먼저 양방향으로 입력값을 받아주었다.
  2. 입력받은 값을 1부터 차례대로 3중 반복문을 돌렸다.
  3. 그래서 i(첫번째 점)이 info[j] (두번째 점과 연결된 점들의 정보)과 연결되어있고, j(두번째 점)이 info[k] (세번째 점과 연결된 점들의 정보), 그리고 다시 k(세번째 점)이 info[i] (첫번째 점과 연결된 점들의 정보)로 다시 연결되면 삼각형이고
  4. res에 +1을 해주었다.
  5. 같은 방식으로 2번, 3번점 계속해서 확인하는데, 3중반복문의 시작점을 작은 수 이후의 점들을 보기때문에 딱히 중복은 발생하지 않는다.

코드

T = int(input())
for t in range(1,T+1):
    N, M = map(int,input().split())
    info = [[] for _ in range(N+1)]
    for _ in range(M):
        x, y = map(int,input().split())
        info[x].append(y)
        info[y].append(x)

    res = 0
    for i in range(1,N+1):
        for j in range(i+1,N+1):
            for k in range(j+1,N+1):
                if i in info[j] and j in info[k] and k in info[i]:
                    res += 1

    print("#{} {}".format(t,res))
profile
안녕하세요~ 개발을 꿈꾸는 하얀족제비입니다!

0개의 댓글