본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 2422번 한윤정이 이탈리아에 가서 아이스크림을 사먹는데

by 현장 2022. 5. 5.

-Code

n, m = map(int, input().split())
ice_no = {i: [] for i in range(1, n + 1)}
result = 0
for _ in range(m):
    a, b = map(int, input().split())
    ice_no[a].append(b)
    ice_no[b].append(a)
for i in range(1, n - 1):
    for j in range(i + 1, n):
        if j in ice_no[i]:
            continue
        for k in range(j + 1, n + 1):
            if k in ice_no[i] or k in ice_no[j]:
                continue
            result += 1
print(result)

처음에는 리스트를 2개 만들어서 각각에 a, b를 입력하고 i, j만 검사해서 틀렸습니다. 그래서 i, j를 검사하고 i, k와 j, k를 검사를 해줘야하는데 리스트를 2개로하면 코드가 너무 볶잡해져서 해결이 안되어 찾아보니 딕셔너리를 이용하는 방법이 있어서 해결을 했습니다.