(三星)-龍曲線(15685)
https://www.acmicpc.net/problem/15685
サムスン機能のテスト-実装
import sys
input = sys.stdin.readline
dx = [0, -1, 0, 1] # 남, 서, 북, 동 방향
dy = [1, 0, -1, 0] # dx, dy => 시작방향 0(x+), 1(y-), 2(x-), 3(y+) 표현
n = int(input())
s = [[0] * 101 for i in range(101)] # s는 100 x 100 격자판
result = 0
for i in range(n): # 방향 0, 1, 2, 3 => 동, 북, 서, 남
y, x, d, g = map(int, input().split()) # y:행, x:열, d: 시작방향, g: 진행할 목표 세대
s[x][y] = 1 # 시작점 채우고 시작
points = [d]
directions = [d]
for j in range(g + 1): # 0부터 g세대까지 반복문
for k in directions:
x += dx[k]
y += dy[k]
s[x][y] = 1 # s[column][row] 꼴
directions = [(p + 1) % 4 for p in points] # 점들로 이루어진 각 선분의 이동방향 배열
directions.reverse() # 이동방향 배열 뒤집기(핵심 규칙성)
points = points + directions # 지나온 각 점의 방향 누적
for i in range(100):
for j in range(100):
if s[i][j] and s[i][j + 1] and s[i + 1][j] and s[i + 1][j + 1]:
result += 1
print(result)
参照)https://chldkato.tistory.com/150
https://pacific-ocean.tistory.com/372
Reference
この問題について((三星)-龍曲線(15685)), 我々は、より多くの情報をここで見つけました https://velog.io/@skkfea07/백준-드래곤-커브15685テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol