CS/Algorithm 문제

[BaekJoon] 백준 1913번 달팽이

[BaekJoon] 백준 1913번 달팽이

 

문제: https://www.acmicpc.net/problem/1913

 

내코드

 

- 시간이 부족했던 문제가 아니라 단순 코딩으로 구현할 수 있었다.

- 상하좌우로 이동하는 횟수에서 규칙을 찾아서 구현했다.

 

# BaekJoon1913.py

N = int(input())
num = int(input())
arr = [[0 for _ in range(N)] for _ in range(N)]

value = 1
a = int(N / 2)
b = int(N / 2)
arr[a][b] = value

tmp = int((N - 1) / 2)
for i in range(tmp):
    # 위로 이동
    for _ in range(2 * i + 1):
        value += 1
        a -= 1
        arr[a][b] = value
    # 오른쪽으로 이동
    for _ in range(2 * i + 1):
        value += 1
        b += 1
        arr[a][b] = value
    # 아래로 이동
    for _ in range(2 * i + 2):
        value += 1
        a += 1
        arr[a][b] = value
    # 왼쪽으로 이동
    for _ in range(2 * i + 2):
        value += 1
        b -= 1
        arr[a][b] = value

for _ in range(2 * (tmp - 1) + 2):
    value += 1
    a -= 1
    arr[a][b] = value

x = 0
y = 0
for i in range(N):
    for j in range(N):
        print(arr[i][j], end=" ")
        if arr[i][j] == num:
            x = i + 1
            y = j + 1
    print()

print(x, y)

 

 

728x90
반응형