-
[λ°±μ€] 2615 μ€λͺ© with PythonPS 2021. 12. 12. 17:42728x90λ°μν
π BOJ 2615 μ€λͺ©
π‘ 쑰건
- λ°λνμλ 19κ°μ κ°λ‘μ€κ³Ό 19κ°μ μΈλ‘μ€μ΄ κ·Έλ €μ Έ μλ€. boardμ ν¬κΈ°λ
19 * 19
κ²μ λ°λμμ 1
,ν° λ°λμμ 2
,μμ΄ λμ΄μ§ μλ μ리λ 0
μΌλ‘ νμ
- κ°λ‘, μΈλ‘ λλ λκ°μ λ°©ν₯ λͺ¨λ ν¬ν¨ν΄μ κ°μ μμ λ°λλμ΄ 5κ° λμ¬μ Έ μλ€λ©΄ μΉλ¦¬νλ€.
5κ° μ΄κ³Ό λλ λ―Έλ§μ κ°μλ μΉλ¦¬ν μ μλ€
- κ²μμμ΄ μ΄κ²Όλμ§, ν°μμ΄ μ΄κ²Όλμ§ λλ μμ§ μΉλΆκ° κ²°μ λμ§ μμλμ§λ₯Ό νλ¨νλ νλ‘κ·Έλ¨μ μμ±.
κ²μμμ΄ μ΄κ²Όμ κ²½μ°μλ 1μ, ν°μμ΄ μ΄κ²Όμ κ²½μ°μλ 2λ₯Ό, μμ§ μΉλΆκ° κ²°μ λμ§ μμμ κ²½μ°μλ 0μ μΆλ ₯
- μμ λλ ν°μμ΄ μ΄κ²Όμ κ²½μ°μλ λμ§Έ μ€μ μ°μλ λ€μ― κ°μ λ°λμ μ€μμ κ°μ₯ μΌμͺ½μ μλ λ°λμμ κ°λ‘μ€, μΈλ‘μ€ λ²νΈλ₯Ό μΆλ ₯νλ€.
- μΈλ‘λ‘ λμΈ κ²½μ°, κ·Έ μ€ κ°μ₯ μμ μλ λ°λμμ κ°λ‘, μΈλ‘μ€ λ²νΈλ₯Ό μΆλ ₯νλ€.
- λΈλ£¨νΈν¬μ€ μκ³ λ¦¬μ¦ & ꡬν μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin dx, dy = [0, 1, 1, 1], [1, 0, -1, 1] board = [] visited = [set() for _ in range(4)] for i in range(19): board.append(list(map(int, stdin.readline().split()))) def check(code, i, j): for z in range(4): cnt = 1 res = set() res.add((i, j)) nx, ny = i + dx[z], j + dy[z] while 1: if 0 <= nx < 19 and 0 <= ny < 19: if board[nx][ny] == code and ((nx, ny) not in visited[z]): cnt += 1 res.add((nx, ny)) visited[z].add((nx, ny)) nx += dx[z] ny += dy[z] else: if cnt == 5: return list(res) else: break else: if cnt == 5: return list(res) break return [] def solve(): for i in range(19): for j in range(19): if board[i][j] == 1: v = check(1, i, j) if v: return 1, v elif board[i][j] == 2: v = check(2, i, j) if v: return 2, v return 0, False code, v = solve() if v is False: print(0) else: tf = 1 x = v[0][1] for i in range(1, 5): if x != v[i][1]: tf = 0 break if tf: v.sort(key=lambda x: (x[0])) print(code) print(*(v[0][0] + 1, v[0][1] + 1)) else: print(code) v.sort(key=lambda x: (x[1])) print(*(v[0][0] + 1, v[0][1] + 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 3 2
β¨οΈ λ¬Έμ νμ΄
- λ°λνμ
19 * 19
μ ν¬κΈ°λ‘ μ νλμ΄ μλ€.solve()
ν¨μμμ μ΄μ€ λ°λ³΅λ¬ΈμΌλ‘ λ°λνμ μΉΈμ λͺ¨λ μννλ€.
- μννλ©΄μ κ²μ λ°λλμ΄ λμ¬μ§ κ³³κ³Ό ν° λ°λμμ΄ λμ¬μ§ κ³³μ λ°κ²¬νκ² λλ€λ©΄,
check()
ν¨μλ₯Ό νΈμΆνλ€.- check(λμ μ, x μ’ν, y μ’ν)
μ νμμΌλ‘ νΈμΆνμ¬ λ°ν λ°μ κ²°κ³Όκ° λΉ λ°°μ΄μ΄ μλλΌλ©΄, μ΄κΈ΄ λ°λ λμ μμ λ²νΈμ λ°λλμ μ’νλ€μ λ°ννλ€.
- check(λμ μ, x μ’ν, y μ’ν)
check()
ν¨μλ μ€λ₯Έμͺ½, μλ, μ’μΈ‘ μλ, μ°μΈ‘ μλμ λ€ λ°©ν₯μ κ²μ¬νλ€.
μ λ ₯λ°μ μ’νλ₯Ό κΈ°μ€μΌλ‘ μμμ λ§ν λ€ λ°©ν₯μ κ²μ¬νλ©΄μ, λ겨λ°μ λ°λλμ μκΉκ³Ό μΌμΉνλ λμ΄ μλ€λ©΄
res μ§ν© μλ£ν λ³μμ λ£μ΄μ£Όκ³ ,5
κ°μΈμ§ νμΈνμ¬ λ§λ€λ©΄res
λ₯Όlist
λ‘ λ³ννμ¬λ°ν
, μλλΌλ©΄λ°λ³΅λ¬Έμ μ’ λ£
νλ€.
solve()
ν¨μ νΈμΆ ν μμ μ΄ λλ¬λ€λ©΄,code
μv
λ₯Ό λ°νλ°κ² λλλ°,code
λ μ΄κΈ΄ λ°λλμ λ»νλ©°v
λ λ°λλμ μ’νλ€μ λ»νλ€.
μΈλ‘λ‘ μΈμμ§ λ°λλμΈμ§ νμΈ ν ν,
tf
μ κ°μ λ°λΌv
λ₯Ό μ λ ¬νκ³ μ΄κΈ΄ λ°λλμ μκ³Ό μ’νλ₯Ό μΆλ ₯νλ€.tf
κ° 1μΌ λ, μΈλ‘λ‘ λμ¬μ§ λ€μ―κ°μ λ°λλμ΄λ€.tf
κ° 0μΌ λ, μΈλ‘κ° μλ λ°©ν₯μΌλ‘ λμ¬μ§ λ°λλμ΄λ€.solve()
ν¨μμ λ°νλ°μv
κ°False
λΌλ©΄ 무μΉλΆμ΄κΈ° λλ¬Έμ0
μ μΆλ ₯νλ€.
πΎ λλμ
λ°λλμ΄ μ¬μ―κ° μΌ λ 쑰건문μ ν΅ν΄ κ±Έλ¬λ΄λ λ²μμ ν€λ§Έλ€.
ꡬνμ ν λ μ‘°κΈ λ κΌΌκΌΌν μκ°ν΄λ³΄μ.
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 14620 κ½κΈΈ with Python (0) 2021.12.13 [λ°±μ€] 13900 μμμμ κ³±μ ν© with Python (0) 2021.12.13 [λ°±μ€] 1515 μ μ΄μ΄ μ°κΈ° with Python (0) 2021.12.12 [λ°±μ€] 1411 λΉμ·ν λ¨μ΄ with Python (0) 2021.12.12 [Programmers] λΈλ‘ μ΄λνκΈ° with Python (0) 2021.12.12 - λ°λνμλ 19κ°μ κ°λ‘μ€κ³Ό 19κ°μ μΈλ‘μ€μ΄ κ·Έλ €μ Έ μλ€. boardμ ν¬κΈ°λ