백준1913 / 달팽이 / JS

Jihoo·2021년 9월 9일
0

Algorithm

목록 보기
9/16

2차원 배열을 반시계 방향으로 탐색합니다.

구현
입력값이 N일때, 직진하는 경우는 다음과 같습니다.

방향 직진횟수
하 N-1
우 N-1
상 N-1
좌 N-2
하 N-2
우 N-3
상 N-3
좌 N-4
하 N-4
.
.
.

dr = [1, 0, -1, 0]
dc = [0, 1, 0, -1]
record = N*N
straight = N-1	// N-1, N-2, N-3 ...
repeat = straight
turn = -1
i,j = 0
while (record > 0):
    if (record = find)
       // find의 좌표 기록
    i += dr[direction % 4]
    j += dc[direction % 4]
    if (repeat = 0):
    	turn++
        direction++
        if (turn = 2):
            turn = 0
            repeat = --straight
    	else:
            repeat = straight
    

0개의 댓글