1954. 달팽이 숫자

2023. 3. 6. 00:02·Algorithm/SW Expert Academy Review

D2

Problem

SW Expert Academy 달팽이 숫자D2

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

Solution

1. 나아갈 수 있는 방향을 설정해준다.(진행방향 순으로)
2. 진행 방향으로 나아가는 중, 다음과 같은 조건일 때 방향을 바꾼다.
  - 입력이 이미 되어 있을 때
  - 범위 바깥으로 나갔을 때

Code

for test_case in range(1, int(input()) + 1 ):
    N = int(input())
    arr = [[0] * N for _ in range(N)]
    di = [0, 1, 0, -1]
    dj = [1, 0, -1, 0]
    recent_i = recent_j = i = j = 0
    print(f'#{test_case}')
    if N == 1:	# 예외처리
        print(1)
    else:
        while arr[recent_i][recent_j] == 0:
            j += 1	# 행부터 넣기
            if 0 <= recent_i < N and 0 <= recent_j < N: # 범위 내에서 회전
                arr[recent_i][recent_j] = j		# 하나씩 넣기
                recent_i += di[i % 4]			# 같은 방향으로 나아가기
                recent_j += dj[i % 4]
            # 만약 범위가 끝나거나 0이 아닌 부분을 만나면
            if recent_j >=N or recent_i >=N or arr[recent_i][recent_j] != 0 :	
                recent_i -= di[i % 4]		# 이전으로 돌아가서
                recent_j -= dj[i % 4]
                i += 1						# 다음 방향으로 설정하고
                recent_i += di[i % 4]		# 나아가기
                recent_j += dj[i % 4]
 
        for k in range(len(arr)):
            print(*arr[k])


<부족한 부분은 댓글로 남겨주시면 저에게 도움이 됩니다!>

 

반응형

'Algorithm > SW Expert Academy Review' 카테고리의 다른 글

4613. 러시아 국기 같은 깃발  (0) 2023.03.06
1210. [S/W 문제해결 기본] 2일차 - Ladder1  (0) 2023.03.06
1961. 숫자 배열 회전  (0) 2023.03.05
4839. [파이썬 S/W 문제해결 기본] 2일차 - 이진탐색  (0) 2023.03.05
4843. [파이썬 S/W 문제해결 기본] 2일차 - 특별한 정렬  (0) 2023.03.05
'Algorithm/SW Expert Academy Review' 카테고리의 다른 글
  • 4613. 러시아 국기 같은 깃발
  • 1210. [S/W 문제해결 기본] 2일차 - Ladder1
  • 1961. 숫자 배열 회전
  • 4839. [파이썬 S/W 문제해결 기본] 2일차 - 이진탐색
devSeongKu
devSeongKu
#FE_개발일지 #일상 #알고리즘
    • 분류 전체보기 (60)
      • Algorithm (41)
        • 개념 (8)
        • SW Expert Academy Review (22)
        • BaekJoon Review (11)
      • WEB (12)
        • HTML (5)
        • CSS (2)
        • JavaScript (1)
        • Django (4)
      • CS (3)
        • Git (2)
      • PROJECT (2)
        • 에러핸들링 (2)
      • 기타 (2)
  • 반응형
  • devSeongKu
    From The Present
    devSeongKu
  • 전체
    오늘
    어제
  • 링크

    • Github
  • 인기 글

  • 태그

    html
    취업까지달린다
    SW Expert Academy
    Baekjoon
    SWEA
    스프린트프론트엔드8기
    코드잇스프린트
    알고리즘
    Algorithm
    Python
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devSeongKu
1954. 달팽이 숫자
상단으로

티스토리툴바