|
์ฝ๋ ์์ฑํ๊ธฐ
def solution(n, results):
answer = 0
arr = [[0 for _ in range(n + 1)] for _ in range(n + 1)]
for x,y in results:
arr[x][y] = 1
arr[y][x] = -1
for k in range(1, n+1):
for i in range(1,n+1):
for j in range(1, n+1):
if arr[i][j] == 0 and arr[i][k] == arr[k][j] == 1:
arr[i][j] = 1
elif arr[i][j] == 0 and arr[i][k] == arr[k][j] == -1:
arr[i][j] = -1
for row in arr[1:]:
# print(row)
if row[1:].count(0) == 1:
answer+=1
return answer
print(solution(5, [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]]), 2)
Python
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
์ฒ์์๋ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ต์ฅ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ๊ตฌํ์ฌ ๊ฐ ํธ๋ฆฌ์ ๋ ๋ฒจ์์ ํ๋๋ง ์๋ ๋
ธ๋์ ๊ฐ์๋ฅผ ์ธ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์์ง๋ง ์ด๋ ๋๋ฌด ์ด๋ ค์ด ์ ๊ทผ์ด์๋ค. ์ด ๋ฌธ์ ๋ ๋ค์ํ ํ์ด๋ฒ์ด ์กด์ฌํ์ง๋ง ๋๋ ํ๋ก์ด๋-์์
์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ์ดํ์๋ค.
n๋ช
์ ์ ์๊ฐ ์กด์ฌํ ๋, ๋ค๋ฅธ n-1 ์ ์๋ค๊ณผ์ ์นํจ๋ฅผ ๊ฒฐ์ ํ ์ ์์ผ๋ฉด, ์์๊ฐ ์ ํด์ง๋ค. โ ์ด๊ฒ ํฌ์ธํธ!
1.
๊ฐ ์ ์๋ค์ ์นํจ๋ฅผ ์ ์ฅํ๋ 2์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ๊ณ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฐจ์ ๋ฐฐ์ด์ ํ์ํ๋ค. ์ด ๋, ์น๋ฆฌํ ๊ฒฝ์ฐ 1, ์ง ๊ฒฝ์ฐ์๋ -1๋ก ํ์ํ๋ค.
2.
ํ๋ก์ด๋-์์
์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ค. ๋ฐฐ์ด์ ์ํํ๋ฉฐ ๋ง์ฝ ํด๋น ๋ฐฐ์ด์ ์นํจ๋ฅผ ์ ์ ์๋ ๊ฒฝ์ฐ ์ ๋ณด๋ฅผ ํ์ํ๋ค. ์๋ฅผ ๋ค์ด arr[a][c] ์ arr[c][b]๊ฐ ๋ชจ๋ 1์ด๋ผ๋ฉด arr[a][b]๋ 1์ด๋ค.
3.
๊ฐ ํ์ ๋๋ฉด์ ์นํจ ์ ๋ณด๋ฅผ n-1๊ฐ ์๊ณ ์๋ค๋ฉด answer+1์ ํด์ค๋ค.