1. ๋ณ์ n ์ ์ธ๋ถ๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ์ ์ฅํฉ๋๋ค.
2. ch ๋ผ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด ์ค๋๋ค. ๊ฐ์ด 0 ์ผ๋ก ํด์ n+1 ํฌ๊ธฐ๋ก ๋ง๋ค์ด์ค๋๋ค.
v = 1
3. DFS(1) ๋ 4๋ฒ์ค์ ํจ์ DFS ์ v๊ฐ์ 1์ ๋ฃ์ด ์คํ์ํต๋๋ค.
4๋ฒ์ค : ํจ์ DFS ์ 1์ด ๋ค์ด๊ฐ๋ฉด,
n(์ฌ๊ธฐ์ n์ 3์ผ๋ก ๊ฐ์ ํ๋ค) +1 ์ ๊ฐ์ 4์ด๋ค.
5๋ฒ์ค : v๊ฐ n+1 ์ ๊ฐ๋ค๋ฉด ๋ฐ๋ก ์๋ for๋ฌธ์ ์คํ์ํจ๋ค. ํ์ฌ v์๋ 1์ด ๋ค์ด์๊ธฐ ๋๋ฌธ์ 1 !=4 ์ด๋ฏ๋ก 10๋ฒ์ค else๊ฐ ์คํ์ด ๋๋ค.
11๋ฒ์ค: ch[1] =1 ์ด๋ฏ๋ก ,
์ด๋ ๊ฒ ๋๋ค.
v = 2
12๋ฒ์ค : DFS(v+1) ์๋ DFS(2)๊ฐ ๋ ๊ฒ์ด๊ณ , DFS(2)๋ 4๋ฒ์ค์ ์๋ ํจ์ DFS ์ ์ด๋ฒ์๋ 1์ด์๋ 2๋ฅผ ๋ฃ์ด์ ์คํ์์ผ์ค๋ค.
5๋ฒ์ค : if 2 == 4: ๊ฐ ๋๊ณ , ์ด๋ ๊ฑฐ์ง์ด๋ฏ๋ก, else ๋ฌธ์ผ๋ก ์ด๋ํ๋ค.
ํ์ฌ v=2 ์์ ์์ง๋ง์. ๊ทธ๋ผ v=2 ๋ฅผ ๊ฐ์ง๊ณ else ๋ฌธ์ ๋์ฐฉํ์ผ๋,
11๋ฒ์ค: ch[2] =1 ์ด ๋๋ค.
12๋ฒ์ค: DFS(2+1) ๋ก DFS(3)์ด ๋๊ณ , DFS(3)์ ๋ค์ 4๋ฒ์ค์ ์์นํ ํจ์ DFS(v)๋ฅผ ํธ์ถํ๋ค.
v = 3
4๋ฒ์งธ์ค : def DFS(3)
5๋ฒ์งธ์ค : if 3 == 3+1: < false ๋ก else ๋ฌธ์ผ๋ก ์ด๋ํ๋ค.
10๋ฒ์ค: ch[3] =1 ์ด๋ฏ๋ก ์๋ ์ฌ์ง์ฒ๋ผ 3๋ฒ์ 1์ ์ฐ์ด์ค๋ค.
12๋ฒ์ค: DFS(4) ๊ฐ ๋๊ณ ๋ ๋ค์ 4๋ฒ์ค์ ์๋ ํจ์ DFS(v) ๋ฅผ ํธ์ถํ์ฌ ์ด๋ํ๋ค.
v = 4
4๋ฒ์ค: def DFS(4)
5๋ฒ์ค: if 4 == 3+1 ์ด ๋๊ณ ๋๋์ด ์ฐธ์ด ๋๋ค. ์ฐธ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์๋ for๋ฌธ์ ์คํ์ํจ๋ค.
6๋ฒ์ค: for i in range(1, n+1): ์ 1๋ถํฐ n๊น์ง ๋ฐ๋ณตํ๋ ์๋ฏธ์ด๋ค. ์ฌ๊ธฐ์ n์ 3์ผ๋ก ์ก์๊ธฐ ๋๋ฌธ์
for 1 in range (1, 4)๊ฐ ๋๋ค.
7๋ฒ์ค: if ch[1] ==1 ์ด๋ผ๋ฉด
8๋ฒ์ค : print ๋ฌธ์ ํตํ์ฌ i ๊ฐ ์ฆ ๋ฆฌ์คํธ ์์ ์ธ๋ฑ์ค ๊ฐ ์ด ์ฐํ๋ค.
ch ์ธ๋ฑ์ค๊ฐ 1์ธ๊ฐ์ 1, 2, 3 ๋ชจ๋ ๋ค ํด๋น๋๋ฏ๋ก 1 2 3 ์ด ์ถ๋ ฅ๋๋ค.
'์๊ณ ๋ฆฌ์ฆ ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฌ๊ทํจ์์ ์คํ(Stack) (1) | 2022.10.09 |
---|---|
๋ฐ๋์ด ์น์ฐจ(DFS) (2) | 2022.10.08 |
[python] ์ ์ญ๋ณ์์ ์ง์ญ๋ณ์ ์ ๋ฆฌ (0) | 2022.10.08 |
ํฉ์ด ๊ฐ์ ๋ถ๋ถ์งํฉ(DFS) (0) | 2022.10.07 |
์์ฃผํ์ง ๋ชปํ ์ ์๐ก (1) | 2022.03.20 |