https://softeer.ai/practice/info.do?idx=1&eid=394
연결리스트를 정의해서, 관계가 있는 정점들끼리 비교를 해주면 된다.
가장 강하다고 생각하는 사람은 다른 사람들과 비교해서 강하다고 생각하기 때문에 한번이라도 만족하지 않게된다면 다르게 표시한다.
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))
'Algorithm > Softeer' 카테고리의 다른 글
[Softeer / Level3][HSAT 7회 정기 코딩 인증평가 기출] 순서대로 방문하기 (0) | 2023.10.14 |
---|---|
[Softeer / Level3][HSAT 7회 정기 코딩 인증평가 기출] 자동차 테스트 (1) | 2023.10.13 |
[Softeer / Level2] GBC (1) | 2023.10.08 |
[Softeer / Level2] 바이러스 (0) | 2023.10.07 |
[Softeer / Level2] [21년 재직자 대회 예선] 전광판 (0) | 2023.10.06 |