-
[Python] ๋ฐฑ์ค 2615 ์ค๋ชฉ (Brute Force)๐ป Algorithm/Python 2022. 7. 2. 15:44
๐ ๋ฌธ์
์ค๋ชฉ์ ๋ฐ๋ํ์ ๊ฒ์ ๋ฐ๋์๊ณผ ํฐ ๋ฐ๋์์ ๊ต๋๋ก ๋์์ ๊ฒจ๋ฃจ๋ ๊ฒ์์ด๋ค. ๋ฐ๋ํ์๋ 19๊ฐ์ ๊ฐ๋ก์ค๊ณผ 19๊ฐ์ ์ธ๋ก์ค์ด ๊ทธ๋ ค์ ธ ์๋๋ฐ ๊ฐ๋ก์ค์ ์์์๋ถํฐ ์๋๋ก 1๋ฒ, 2๋ฒ, ... ,19๋ฒ์ ๋ฒํธ๊ฐ ๋ถ๊ณ ์ธ๋ก์ค์ ์ผ์ชฝ์์๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก 1๋ฒ, 2๋ฒ, ... 19๋ฒ์ ๋ฒํธ๊ฐ ๋ถ๋๋ค.
์์ ๊ทธ๋ฆผ์์์ ๊ฐ์ด ๊ฐ์ ์์ ๋ฐ๋์์ด ์ฐ์์ ์ผ๋ก ๋ค์ฏ ์์ ๋์ด๋ฉด ๊ทธ ์์ด ์ด๊ธฐ๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ์ฐ์์ ์ด๋ ๊ฐ๋ก, ์ธ๋ก ๋๋ ๋๊ฐ์ ๋ฐฉํฅ ๋ชจ๋๋ฅผ ๋ปํ๋ค. ์ฆ, ์์ ๊ทธ๋ฆผ์ ๊ฒ์์์ด ์ด๊ธด ๊ฒฝ์ฐ์ด๋ค. ํ์ง๋ง ์ฌ์ฏ ์ ์ด์์ด ์ฐ์์ ์ผ๋ก ๋์ธ ๊ฒฝ์ฐ์๋ ์ด๊ธด ๊ฒ์ด ์๋๋ค.
์ ๋ ฅ์ผ๋ก ๋ฐ๋ํ์ ์ด๋ค ์ํ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฒ์์์ด ์ด๊ฒผ๋์ง, ํฐ์์ด ์ด๊ฒผ๋์ง ๋๋ ์์ง ์น๋ถ๊ฐ ๊ฒฐ์ ๋์ง ์์๋์ง๋ฅผ ํ๋จํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๊ฒ์์๊ณผ ํฐ์์ด ๋์์ ์ด๊ธฐ๊ฑฐ๋ ๊ฒ์์ ๋๋ ํฐ์์ด ๋ ๊ตฐ๋ฐ ์ด์์์ ๋์์ ์ด๊ธฐ๋ ๊ฒฝ์ฐ๋ ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค์ง ์๋๋ค.
์ ๋ ฅ
19์ค์ ๊ฐ ์ค๋ง๋ค 19๊ฐ์ ์ซ์๋ก ํํ๋๋๋ฐ, ๊ฒ์ ๋ฐ๋์์ 1, ํฐ ๋ฐ๋์์ 2, ์์ด ๋์ด์ง ์๋ ์๋ฆฌ๋ 0์ผ๋ก ํ์๋๋ฉฐ, ์ซ์๋ ํ ์นธ์ฉ ๋์ด์ ํ์๋๋ค.
์ถ๋ ฅ
์ฒซ์ค์ ๊ฒ์์์ด ์ด๊ฒผ์ ๊ฒฝ์ฐ์๋ 1์, ํฐ์์ด ์ด๊ฒผ์ ๊ฒฝ์ฐ์๋ 2๋ฅผ, ์์ง ์น๋ถ๊ฐ ๊ฒฐ์ ๋์ง ์์์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค. ๊ฒ์์ ๋๋ ํฐ์์ด ์ด๊ฒผ์ ๊ฒฝ์ฐ์๋ ๋์งธ ์ค์ ์ฐ์๋ ๋ค์ฏ ๊ฐ์ ๋ฐ๋์ ์ค์์ ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋ฐ๋์(์ฐ์๋ ๋ค์ฏ ๊ฐ์ ๋ฐ๋์์ด ์ธ๋ก๋ก ๋์ธ ๊ฒฝ์ฐ, ๊ทธ ์ค ๊ฐ์ฅ ์์ ์๋ ๊ฒ)์ ๊ฐ๋ก์ค ๋ฒํธ์, ์ธ๋ก์ค ๋ฒํธ๋ฅผ ์์๋๋ก ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 0 0 2 2 2 1 0 0 0 0 0 0 0 0 0 0
0 0 1 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0์์ ์ถ๋ ฅ 1
1
3 2
๐ ํ์ด
๐ฌ Code
import sys input = sys.stdin.readline board = [] for i in range(19): board.append(list(map(int, input().split()))) # → ↓ โ โ dx = [0, 1, 1, -1] dy = [1, 0, 1, 1] for x in range(19): for y in range(19): if board[x][y] != 0: focus = board[x][y] for i in range(4): cnt = 1 nx = x + dx[i] ny = y + dy[i] while 0 <= nx < 19 and 0 <= ny < 19 and board[nx][ny] == focus: cnt += 1 if cnt == 5: # ์ก๋ชฉ ์ฒดํฌ if 0 <= x - dx[i] < 19 and 0 <= y - dy[i] < 19 and board[x - dx[i]][y - dy[i]] == focus: break if 0 <= nx + dx[i] < 19 and 0 <= ny + dy[i] < 19 and board[nx + dx[i]][ny + dy[i]] == focus: break # ์ก๋ชฉ์ด ์๋๋ฉด ์ฑ๊ณตํ๊ฑฐ๋๊น ์ข ๋ฃ print(focus) print(x + 1, y + 1) sys.exit(0) nx += dx[i] ny += dy[i] print(0)
๐ก Solution
์ก๋ชฉ ์ฒดํฌ๊น์ง ํด์ผํด์ ๊น๋ค๋ก์ ๋ ๋ฌธ์ ..๐คฎ
- ๋ฌธ์ ์์ ์ ์ฌํ ๋ณด์์ผ ํ ๋ถ๋ถ
- ์ฌ์ฏ ์ ์ด์์ด ์ฐ์์ ์ผ๋ก ๋์ธ ๊ฒฝ์ฐ์๋ ์ด๊ธด ๊ฒ์ด ์๋๋๋ค.
- ์์ง ์น๋ถ๊ฐ ๊ฒฐ์ ๋์ง ์์์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํฉ๋๋ค.
- ์น๋ถ๊ฐ ๊ฒฐ์ ๋์์ ๊ฒฝ์ฐ์๋ ์ฐ์๋ ๋ค์ฏ ๊ฐ์ ๋ฐ๋์ ์ค ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋ฐ๋์์ ์ขํ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. → ๋ฐฉํฅ์ (→ ↓ โ โ)๋ก ์ค์ ํด์ผ ํ๋ ์ด์ !
- (0, 0)๋ถํฐ (18, 18)๊น์ง ๋ชจ๋ ์ขํ์์ ๋ฐฉํฅ ๊ฐฏ์๋งํผ for๋ฌธ์ 4๋ฒ ๋๋ ค → ↓ โ โ ๋ฐฉํฅ์ผ๋ก ์ญ์ญ 5์นธ์ฉ์ ์ฒดํฌ (๋ฐ๋๋์ด ๋์ฌ์๋ ๊ฒฝ์ฐ์๋ง=์ฆ ์ขํ์ ์ ์ฅ๋ ๊ฐ์ด 0์ด ์๋ ๊ฒฝ์ฐ์๋ง)
- x, y๋ ํ์ฌ ์ขํ
- nx, ny๋ ํ์ฌ ์ขํ์์ ํด๋น ๋ฐฉํฅ์ผ๋ก 1๋งํผ ์ด๋์ํจ ์ขํ
- 5์นธ ์ฐ์์ผ๋ก 1 or 2๊ฐ ๋์ฌ์์์ ๊ฒฝ์ฐ ์ก๋ชฉ์ธ ์ผ์ด์ค๋ฅผ ๊ฑธ๋ฌ์ค์ผ ํฉ๋๋ค.
- ์ฒซ๋ฒ์งธ ๋ฐ๋๋๋ณด๋ค ํ ์นธ ์ด์ ์ ๋ฐ๋๋ ์ฒดํฌ
- ๋ง์ง๋ง ๋ฐ๋๋๋ณด๋ค ํ ์นธ ์ดํ์ ๋ฐ๋๋ ์ฒดํฌ
sys.exit(0)
4์ค ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๊ณ ์๋ ์ฝ๋์ฌ์, ์น๋ฆฌํ์ ์ ๋์ด์์ ์ขํ๋ฅผ ํ์ํ์ง ์๊ธฐ ์ํด ์ด ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ฌ ๋ฐฉ๋ฒ์ด ํ์ํ์ต๋๋ค.
if isEnd: break if isEnd: break if isEnd: break
์ฒ์์ isEnd๋ผ๋ ๋ถ๋ฆฐ๊ฐ์ ๋ง๋ค์ด์ ์ด๋ฐ ์์ผ๋ก ์งฐ๋๋ฐ.. ๋๋ฌด ๊ฐ๋ ์ฑ์ด ๋ณ๋ก์ธ ๊ฒ ๊ฐ์์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ฌผ์ํด๋ณด๋ค๊ฐ ๋ฐ๊ฒฌํ ๊ฒ์ด sys.exit(0)์ ๋๋ค. ์๋ ๋ญํ๋ ์ค์ง ์์๋ด ์๋ค.
a = 10 b = 11 print(a+b)
์ด๋ฌํ ์ฝ๋๋ฅผ ์ง๊ณ ์คํ์ ํ์ ๋ ์์ ๊ฐ์ ๊ฒฐ๊ณผ์ฐฝ์ ๋ณด๊ฒ ๋ฉ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ์ํ๋ ํ๋ก๊ทธ๋จ์ ๋ณด๋ค์ํผ exit code๊ฐ 0์ผ๋ก ๋ฐํ๋ฉ๋๋ค.
a = 10 b = "f" print(a+b)
๋ง์ฝ ์ด๋ฌํ ํฐ๋ฌด๋์๋ ์ค๋ฅ ์ฝ๋๋ฅผ ์ง๊ณ ์คํ์ ํ๋ฉด ์ค๋ฅ ๋ฌธ์ฅ์ ์ถ๋ ฅํ๋ฉด exit code๊ฐ 1๋ก ๋ฐํ๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ์ ํ๋ก๊ทธ๋จ์ด ์ ์์ ์ผ๋ก ์ข ๋ฃ๊ฐ ๋๋ค๋ ๊ฒ์ ํ์ํ ๋๋ ์ธ์๊ฐ์ 0์ผ๋ก ์ฃผ๊ณ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๊ฐ ๋๋ค๋ ๊ฒ์ ํ์ํ ๋๋ ์ธ์๊ฐ์ 1์ ์ฃผ๋ฉด ๋ฉ๋๋ค.
sys.exit(0)์ ์คํํ๋ฉด ๊ตณ์ด ๋ถ๋ฆฐ๊ฐ์ผ๋ก ์ข ๋ฃ์ฒดํฌ๋ฅผ ํ์ง ์์๋ ๋ฐ๋ก ํ๋ก๊ทธ๋จ์ ์ ์์ข ๋ฃ์ํฌ ์ ์์ต๋๋ค!๐ก
'๐ป Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 3184 ์ (BFS) (0) 2022.07.02 [Python] ๋ฐฑ์ค 2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (BFS) (0) 2022.07.02 [Python] ๋ฐฑ์ค 1913 ๋ฌํฝ์ด (๊ตฌํ) (0) 2022.07.02 [Python] ๋ฐฑ์ค 2178 ๋ฏธ๋ก ํ์ (BFS) (0) 2022.07.02 [Python] ๋ฐฑ์ค 1325 ํจ์จ์ ์ธ ํดํน (BFS) (0) 2022.07.02 - ๋ฌธ์ ์์ ์ ์ฌํ ๋ณด์์ผ ํ ๋ถ๋ถ