[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
반응형
'CS > Algorithm 문제' 카테고리의 다른 글
[BaekJoon] 백준 2011번 암호코드 (0) | 2021.08.18 |
---|---|
[BaekJoon] 백준 14719 빗물 (0) | 2021.08.07 |
[BaekJoon] 백준 1325 효율적인 해킹 (0) | 2021.08.07 |
[BaekJoon] 백준 20444번 색종이와 가위 (0) | 2021.08.06 |
[BaekJoon] 백준 1182번 부분수열의 합 (0) | 2021.08.06 |