본문 바로가기
Algorithm(CodeTree, Python)/완전탐색2

[코드트리 물체 단위로 완전탐색] 개발자의 순위 python

by kurooru 2022. 12. 16.
# k, n 입력
k, n = map(int, input().split())
# table
table = list()
# table 입력
for _ in range(k):
    table.append(list(map(int, input().split())))

# 함수들
# is_ok(a, b)
def is_ok(a, b):

    # 모든 순위를 선회
    for i in range(1, k):
        
        # 해당 순위 내에서
        for j in range(n):
            
            # 앞 요소를 발견하면
            if table[i][j] == a:
                # 순위를 기록
                rank_a = j
            
            # 뒷 요소를 발견하면
            elif table[i][j] == b:
                # 순위를 기록
                rank_b = j

        # 한번이라도 순위가 맞지않으면
        if rank_a > rank_b:
            # 실패
            return False
    
    # 모든 순위를 선회했는데도
    # 순위가 맞지 않은 경우가 없었다면 통과
    return True

# 설계
# cnt
cnt = 0

# 완전탐색 시작
for i in range(n-1):
    for j in range(i+1, n):
        # 첫 순위에서 나온 모든 조합이
        # 다른 모든순위에서 적용된다면
        if is_ok(table[0][i], table[0][j]):
            # cnt에 추가
            cnt += 1

# 출력
print(cnt)