
https://www.acmicpc.net/problem/11403
๋ฌธ์
๊ฐ์ค์น ์๋ ๋ฐฉํฅ ๊ทธ๋ํ G๊ฐ ์ฃผ์ด์ก์ ๋, ๋ชจ๋ ์ ์ (i, j)์ ๋ํด์, i์์ j๋ก ๊ฐ๋ ๊ธธ์ด๊ฐ ์์์ธ ๊ฒฝ๋ก๊ฐ ์๋์ง ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N (1 โค N โค 100)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ ์ค์๋ ๊ทธ๋ํ์ ์ธ์ ํ๋ ฌ์ด ์ฃผ์ด์ง๋ค. i๋ฒ์งธ ์ค์ j๋ฒ์งธ ์ซ์๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ i์์ j๋ก ๊ฐ๋ ๊ฐ์ ์ด ์กด์ฌํ๋ค๋ ๋ป์ด๊ณ , 0์ธ ๊ฒฝ์ฐ๋ ์๋ค๋ ๋ป์ด๋ค. i๋ฒ์งธ ์ค์ i๋ฒ์งธ ์ซ์๋ ํญ์ 0์ด๋ค.
์ถ๋ ฅ
์ด N๊ฐ์ ์ค์ ๊ฑธ์ณ์ ๋ฌธ์ ์ ์ ๋ต์ ์ธ์ ํ๋ ฌ ํ์์ผ๋ก ์ถ๋ ฅํ๋ค. ์ ์ i์์ j๋ก ๊ฐ๋ ๊ธธ์ด๊ฐ ์์์ธ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด i๋ฒ์งธ ์ค์ j๋ฒ์งธ ์ซ์๋ฅผ 1๋ก, ์์ผ๋ฉด 0์ผ๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
์์

์กฐ๊ฑด
- ์๊ฐ ์ ํ: 1์ด
- ๋ฉ๋ชจ๋ฆฌ ์ ํ: 256MB
์ฝ๋
import sys
input = sys.stdin.readline
N = int(input())
graph = [list(map(int,input().split())) for _ in range(N)]
for k in range(N): # ๊ฑฐ์ณ๊ฐ๋ ๋
ธ๋
for i in range(N): # ์์ ๋
ธ๋
for j in range(N): # ๋์ฐฉ ๋
ธ๋
if graph[i][k] == 1 and graph[k][j] == 1: # i๊ฐ k๋ฅผ ๊ฑฐ์ณ์ j๋ก ๊ฐ ์ ์๋ ๊ฒฝ์ฐ
graph[i][j] = 1
for row in graph:
print(*row)
ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ์ฌ ๊ฐ๋จํ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค.
์ ๋ ฅ๋ฐ์ ๊ทธ๋ํ ์์์๋, ์ค๊ฐ์ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๊ณ ๋ ค๋์ด ์์ง ์๋ค.
๊ทธ๋ ๊ธฐ์ ์ด๋ฅผ ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด์ด์ฃผ๋ฉด ๋๋ค.
๋ง์ฝ i๋ถํฐ j๊น์ง๊ฐ 0์ด์ด๋, i๋ถํฐ k๊ฐ 1์ด๊ณ k๋ถํฐ j๊น์ง๊ฐ 1์ด๋ผ๋ฉด ์ฐ๊ฒฐํด์ค ์ ์์ผ๋ฏ๋ก graph[i][j] ๋ 1๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
์ต์ข ์ ์ผ๋ก ๋ณ๊ฒฝ๋
graph๋ฅผ ์ถ๋ ฅํด์ค๋ค.
๋๋ ์ & ๋ฐฐ์ด ์