1. ์น/ํจ ์ ๋ณด๋ฅผ ๋ด์ ๋์ ๋๋ฆฌ๋ฅผ ์ ์
from collections import defaultdict
def solution(n, results):
answer = 0
win, lose = defaultdict(set), defaultdict(set)
2. ์ฃผ์ด์ง ๊ฒฐ๊ณผ์์ ์น/ํจ ์ ๋ณด๋ฅผ ๋ชจ๋ ๊ธฐ๋ก
for winner, loser in results:
win[loser].add(winner)
lose[winner].add(loser)
3. ํน์ ์กฐ๊ฑด์ ๋ฐ์
for i in range(1, n+1)
for winner in win[i]:
lose[winner].update(lose[i])
for loser in lose[i]:
win[loser].update(winner[i])
4. ๊ฐ ์ ์๊ฐ ์น/ํจ ๊ฒฝ๊ธฐ๋ฅผ ํฉ์น ๊ฒฐ๊ณผ๊ฐ ์ด n - 1๊ฐ์ธ์ง ํ์ธ
for i in range(1, n+1)
if len(win[i]) + len(lose[i]) == n - 1:
answer += 1
from collections import defaultdict
def solution(n, results):
answer = 0
win, lose = defaultdict(set), defaultdict(set)
for winner, loser in results:
win[loser].add(winner)
lose[winner].add(loser)
for i in range(1, n+1)
for winner in win[i]:
lose[winner].update(lose[i])
for loser in lose[i]:
win[loser].update(winner[i])
for i in range(1, n+1)
if len(win[i]) + len(lose[i]) == n - 1:
answer += 1
return answer
1. ์น/ํจ ์ ๋ณด๋ฅผ ๋ด์ ๊ทธ๋ํ๋ฅผ ์์ฑ
def solution(n, results):
total = [[0 for i in range(n)] for j in range(n)]
for i in rnage(n):
total[i][i] = 'SELF'
2. ์ฃผ์ด์ง ๊ฒฐ๊ณผ์์ ์น/ํจ ์ ๋ณด๋ฅผ ๊ธฐ๋ก
for result in results:
total[result[0] - 1][result[1] - 1] = 'WINS'
total[result[1] - 1][result[0] - 1] = 'LOSE'
3. ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ
for k in range(n):
for i in range(n):
for j in range(n):
if total[i][k] == 'WINS' and total[k][j] == 'WINS': total[i][j] = 'WINS'
if total[k][j] == 'LOSE' and total[k][j] == 'LOSE' : total[i][j] = 'LOSE'
4. ์ ํด์ง์ง ์์ ๊ฐ์ด ์๋์ง ํ์ธ
answer = 0
for i in total:
if 0 not in i: answer += 1
def solution(n, results):
total = [['????' for i in range(n)] for j in range(n)]
for i in rnage(n):
total[i][i] = 'SELF'
for result in results:
total[result[0] - 1][result[1] - 1] = 'WINS'
total[result[1] - 1][result[0] - 1] = 'LOSE'
for k in range(n):
for i in range(n):
for j in range(n):
if total[i][k] == 'WINS' and total[k][j] == 'WINS': total[i][j] = 'WINS'
if total[k][j] == 'LOSE' and total[k][j] == 'LOSE' : total[i][j] = 'LOSE'
answer = 0
for i in total:
if '????' not in 1:
answer += 1
return answer