본문 바로가기
Algorithm/Softeer

[Softeer / Level3]우물 안 개구리

by 개복취 2023. 10. 8.

https://softeer.ai/practice/info.do?idx=1&eid=394 

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai


 

연결리스트를 정의해서, 관계가 있는 정점들끼리 비교를 해주면 된다.

가장 강하다고 생각하는 사람은 다른 사람들과 비교해서 강하다고 생각하기 때문에 한번이라도 만족하지 않게된다면 다르게 표시한다.

 

strongest 리스트를 사람 수만큼 정의하고 모두 강하다는 판단을 한다는 것을 1을 기본으로 정의했다.

한번이라도 비교했을 때 약하다고 나타나면 0으로 표시하고 break

 

최종적으로 strongest 리스트에 1의 갯수를 세어 몇명이 있는지 출력한다.

 

 

<내 코드>

import sys

input = sys.stdin.readline

N, M = map(int, input().split())
W = list(map(int, input().split()))
vertex = [[] for _ in range(N + 1)]
strongest = [1 for _ in range(N)]

for i in range(M):
    a, b = map(int, input().split())
    vertex[a].append(b)
    vertex[b].append(a)

# print(vertex)

for pivot in range(1, N+1):
    S = vertex[pivot]
    for competitor in S:
        if W[pivot - 1] <= W[competitor - 1]:
            strongest[pivot - 1] = 0
            break

print(strongest.count(1))