[15685. 드래곤커브]

4past12·2023년 6월 29일
0

수원에 새로 생겼다는 게집. 게쪄 그래용~ 그래용~ 쥐 쥬래갠~~~ 🦀

그런 의미에서 이번 문제는 15685. 드래곤커브 이올시다

링크텍스트

자존감 올리기 컨텐츠로 풀어봤던 이번 문제. 나름 이집피집했다

좀 웃겼던 점:

1. direction 리스트 이름을 dir로 정의했다가 기본 내장함수 dir()과 중복된다는 것을 발견하지 못하고 꽤 헤멘 것. ㅎㅋ 멋쓱 ^^

2. 핵심은 리스트를 역순으로 뽑아서 기존 리스트에 덧붙이는 소소한 기술

import sys
N = int(input())  ## 드래곤 커브의 개수
graph = [[0] * 101 for _ in range(101)] ## 지나간 자리 트래킹할꼬얌 

for _ in range(N):
    x, y, d, g = map(int, sys.stdin.readline().split())
    graph[y][x] = 1
    drc = [d]   ## 드래곤 커브 방향 리스트 만들거양 0동 1북 2서 3남
    for i in range(g): ## 리스트 요소를 역순으로 뽑아 조작한 뒤 추가함
        for j in range(len(drc)):
            drc.append((drc[2 ** i - j - 1] + 1) % 4)
    curx = x
    cury = y
    for k in range(len(drc)): ## 방향에 따른 좌표값 올려주기
        if drc[k] == 0:
            curx +=1
        elif drc[k] == 1:
            cury -=1
        elif drc[k] == 2:
            curx -=1
        elif drc[k] == 3:
            cury +=1
        graph[cury][curx] = 1 ## 방문한 좌표값을 1로 처리할거야

count = 0
for l in range(100):
    for m in range(100):
        if graph[l][m] == 1 and graph[l+1][m] == 1 and graph[l][m+1] == 1 and graph[l+1][m+1] == 1:
            count += 1
print(count)
profile
직무전환 무새. 딴생각 오지게 함. 근데 1년차 직장인ㅋ.

0개의 댓글