π€λ¬Έμ ν΄κ²°
1. D4 | DFS
2. μ νν μ«μμ +1, -1λ‘ μ°κ²°λ μ μλ ꡬκ°μ μ°Ύλ λ°©λ²μ μ¬μ©
3. μ²μ μ«μλ₯Ό μ ννκ³ κ·Έ μ«μλ³΄λ€ κ°μ΄ 1μ΄ ν° μ«μλ₯Ό κ³μ μ°Ύλλ€
4. κ·Έ μ«μλ³΄λ€ κ°μ΄ 1μ΄ μμ μ«μλ κ³μ μ°Ύλλ€.
5. μ°Ύμ μμ μ«μ ~ ν° μ«μμ λ²μκ° νλμ ꡬκ°μ΄ λλ€.
6. κ°μ λ€λ₯Έ μ«μ(ex. -10)μΌλ‘ λ°κΏμ€μ νλμ ꡬκ°μ μ¬λ¬λ² νμνμ§ μκ² νλ€.
7. λͺ¨λ ꡬκ°λ€μ ꡬνκ³ κ΅¬κ°μ κΈΈμ΄κ° κ°μ₯ κΈ΄ ꡬκ°μ μ ν. ꡬκ°μ΄ μ¬λ¬κ°λΌλ©΄ μμμ μ΄ κ°μ₯ μμ μ«μλ₯Ό μ ννλ€.
(cnt_listλ μμμ μ μΈλ±μ€λ‘ νκ³ κ°μ ꡬκ°μ κΈΈμ΄λ‘ νλ 리μ€νΈμ΄λ€)
π¨ νλνλ λͺ¨λ μ«μλ₯Ό νμν΄λ λμ§λ§ ν¨μ¨μ΄ μ’μ§ μμ κ² κ°λ€.
π»μμ€ μ½λ
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
for tc in range(1, 1+int(input())):
n = int(input())
maps = [list(map(int, input().split())) for _ in range(n)]
cnt_list = [0] * (n ** 2 + 1)
for i in range(n):
for j in range(n):
if maps[i][j] > 0:
low_stack = [(i, j)]
low_num = maps[i][j]
high_num = maps[i][j]
high_stack = [(i, j)]
maps[i][j] = -10
# ν° μ«μ μ°ΎκΈ°
while high_stack:
x, y = high_stack.pop()
for k in range(4):
nx = x + dx[k]
ny = y + dy[k]
if 0<=nx<n and 0<=ny<n:
if maps[nx][ny] == high_num + 1:
high_stack.append((nx,ny))
high_num += 1
maps[nx][ny] = -10
break
# μμ μ«μ μ°ΎκΈ°
while low_stack:
x, y = low_stack.pop()
for k in range(4):
nx = x + dx[k]
ny = y + dy[k]
if 0<=nx<n and 0<=ny<n:
if maps[nx][ny] == low_num - 1:
low_stack.append((nx,ny))
low_num -= 1
maps[nx][ny] = -10
break
cnt_list[low_num] = high_num - low_num + 1
max_cnt = max(cnt_list)
max_cnt_idx = cnt_list.index(max_cnt)
print('#{} {} {}'.format(tc, max_cnt_idx, max_cnt))
πλ¬Έμ νμΈ
μΆμ²: SW Expert Academy
N2κ°μ λ°©μ΄ N×Nννλ‘ λμ΄μ μλ€.
μμμ iλ²μ§Έ μ€μ μΌμͺ½μμ jλ²μ§Έ λ°©μλ 1μ΄μ N2 μ΄νμ μ Ai,jκ° μ ν μμΌλ©°, μ΄ μ«μλ λͺ¨λ λ°©μ λν΄ μλ‘ λ€λ₯΄λ€.
λΉμ μ΄ μ΄λ€ λ°©μ μλ€λ©΄, μνμ’μ°μ μλ λ€λ₯Έ λ°©μΌλ‘ μ΄λν μ μλ€.
λ¬Όλ‘ μ΄λνλ €λ λ°©μ΄ μ‘΄μ¬ν΄μΌ νκ³ , μ΄λνλ €λ λ°©μ μ ν μ«μκ° νμ¬ λ°©μ μ ν μ«μλ³΄λ€ μ νν 1 λ μ»€μΌ νλ€.
μ²μ μ΄λ€ μκ° μ ν λ°©μμ μμ΄μΌ κ°μ₯ λ§μ κ°μμ λ°©μ μ΄λν μ μλμ§ κ΅¬νλ νλ‘κ·Έλ¨μ μμ±νλΌ.
[μ
λ ₯]
첫 λ²μ§Έ μ€μ ν
μ€νΈ μΌμ΄μ€μ μ Tκ° μ£Όμ΄μ§λ€.
κ° ν
μ€νΈ μΌμ΄μ€μ 첫 λ²μ§Έ μ€μλ νλμ μ μ N (1 ≤ N ≤ 103)μ΄ μ£Όμ΄μ§λ€.
λ€μ Nκ°μ μ€μλ iλ²μ§Έ μ€μλ Nκ°μ μ μ Ai, 1, … , Ai, N (1 ≤ Ai, j ≤ N2) μ΄ κ³΅λ°± νλλ‘ κ΅¬λΆλμ΄ μ£Όμ΄μ§λ€.
Ai, jλ λͺ¨λ μλ‘ λ€λ₯Έ μμ΄λ€.
[μΆλ ₯]
κ° ν
μ€νΈ μΌμ΄μ€λ§λ€ ‘#x’(xλ ν
μ€νΈμΌμ΄μ€ λ²νΈλ₯Ό μλ―Ένλ©° 1λΆν° μμνλ€)λ₯Ό μΆλ ₯νκ³ ,
ν μΉΈμ λμ΄ ν, μ²μμ μΆλ°ν΄μΌ νλ λ°© λ²νΈμ μ΅λ λͺ κ°μ λ°©μ μ΄λν μ μλμ§λ₯Ό 곡백μΌλ‘ ꡬλΆνμ¬ μΆλ ₯νλ€.
μ΄λν μ μλ λ°©μ κ°μκ° μ΅λμΈ λ°©μ΄ μ¬λΏμ΄λΌλ©΄ κ·Έ μ€μμ μ ν μκ° κ°μ₯ μμ κ²μ μΆλ ₯νλ€.
[μμ νμ΄]
첫 λ²μ§Έ ν
μ€νΈ μΌμ΄μ€λ 1 λλ 3μ΄ μ ν κ³³μ μμ΄μΌ νλ€.
λ λ²μ§Έ ν
μ€νΈ μΌμ΄μ€λ 3 λλ 6μ΄ μ ν κ³³μ μμ΄μΌ νλ€.