본문 바로가기
알고리즘

[알고리즘] 드래곤 커브

by keel_im 2021. 4. 3.
반응형

포인트

  • 규칙을 찾아야 하는 문제입니다. 다른 방식들도 많은 것 같은데 저는 이렇게 푼 게 편했던 덧 같습니다. 드래곤 커브가 움직이는 방향은 각 이동 방향에서  뒤에서부터 %4 +1 가지고 있습니다. 이러한 방식으로 for loop를 돌면 간단히 풀리는 과정이지만 이 과정을 찾아내는 게 까다로웠던 것 같습니다. 

🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. ㅋ

python

dx = [1, 0, -1, 0]
dy = [0, -1, 0, 1]

n = int(input())
data = [[0] * 101 for _ in range(101)]
for _ in range(n):
    x, y, d, g = map(int, input().split())
    data[x][y] = 1
    dirs = [d]
    for _ in range(g):
        temp = []
        for i in range(len(dirs)):
            temp.append((dirs[-i - 1] + 1) % 4)
        dirs.extend(temp)

    for dir in dirs:
        nx, ny = x + dx[dir], y + dy[dir]
        data[nx][ny] = 1
        x, y = nx, ny

result = 0
for i in range(100):
    for j in range(100):
            if data[i][j] and data[i + 1][j] and data[i][j + 1] and data[i + 1][j + 1]:
                result += 1
print(result)
반응형

댓글