-
[정올 1707] 달팽이 배열코딩 2018. 4. 26. 10:41
오랜만에 이런 문제를 접하게 되는 것 같다
학부생 시절 접했던 문제, 한시간은 커녕 반시간안에도 풀었던 기억이 있는데
이렇게까지 고생할 줄은 정말 몰랐다
코딩은 안하면 녹쓴다
def main(): n = int(input()) sero = [0,1,0,-1] garo = [1,0,-1,0] dir = 0 map = [[0 for cols in range(n)]for rows in range(n)] y = 0 x = 0 cnt = 1 rot_Pointer = 0 while True: map[y][x] = cnt if rot_Pointer == 2: break nx = x + garo[dir] ny = y + sero[dir] # 더한 값이 배열 범위 넘을경우 if (( ny >= n) or ( ny < 0 ) or ( nx >= n ) or ( nx <0) ): #회전) dir = ( dir + 1 ) % 4 rot_Pointer += 1 continue # 더한 값이 범위 넘지 않을 경우 else : print (x,y) # 더한값이 만약 방문했던 곳이라면 if map[ny][nx] != 0 : #회전 dir = ( dir+1 ) % 4 rot_Pointer += 1 continue # x,y는 더한값으로 세팅이 된다 y = ny x = nx cnt += 1 rot_Pointer = 0 for i in range(n): for j in range(n): print(map[i][j] , end = ' ') print() if __name__ == "__main__": main()
'코딩' 카테고리의 다른 글
[ 파이썬 ] requests 모듈을 통한 자동화 글쓰기 (0) 2018.06.22 [백준][파이썬] 2839 설탕배달 (0) 2018.05.02 [파이썬] 로또 프로그램 (0) 2018.04.27 [파이썬]pipinstaller (0) 2018.04.27 [ 백준 ]1966 프린터 큐 (0) 2018.03.14