[SWEA][Python] 1954 달팽이 숫자

2024. 5. 16. 00:17·🚩 Coding Test/SWEA
728x90

[문제]

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?contestProbId=AV5PobmqAPoDFAUq&solveclubId=AV6kld8aisgDFASb&problemBoxTitle=%5BD2%7ED3+%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4%5D+%EA%B8%B0%EC%B4%88+%EB%8B%A4%EC%A7%80%EA%B8%B0+Part3&problemBoxCnt=14&probBoxId=AV-HZfeqN3ADFASP

 

SW Expert Academy

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

swexpertacademy.com

 

[참고]

자세한 설명이 필요하면 다음 유튜브를 참고하길 바란다. 

https://www.youtube.com/watch?v=rw2gQg9x_EA

 

 

[배운 점]

di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]
  • 방향 설정 
  • ni = i + di[dr]; nj = i + dj[dr]; dr = (dr + 1) % 4; 와 같은 방식으로 그래프에서 이동할 수 있다. 

[코드]

T = int(input())  # 테스트 케이스 개수
for tc in range(1, T + 1):
    n = int(input())

    # step 1. 이동 방향 확인 (우 하 좌 상)
    di = [0, 1, 0, -1]
    dj = [1, 0, -1, 0]

    # step 2. 초기화 및 초기값 설정
    i, j, dr, cnt = 0, 0, 0, 1
    arr = [[0] * n for _ in range(n)]
    arr[i][j] = cnt
    cnt += 1

    # step 3. 방향을 바꾸는 조건 확인
    while cnt <= n * n:
        ni = i + di[dr]
        nj = j + dj[dr]

        # 조건 - 범위 이내, arr 값이 0 인 경우
        if 0 <= ni < n and 0 <= nj < n and arr[ni][nj] == 0:
            i, j = ni, nj
            arr[i][j] = cnt
            cnt += 1

        # step 4. 방향 바꾸기
        else:
            dr = (dr + 1) % 4

    # 출력
    print(f'#{tc}')
    for lst in arr:
        print(*lst)
반응형

'🚩 Coding Test > SWEA' 카테고리의 다른 글

[SWEA][Python] 5431 민석이의 과제 체크하기  (0) 2024.05.18
[SWEA][Python] 20019 회문의 회문  (0) 2024.05.17
[SWEA][S/W 문제해결 기본][Python] 1230 암호문 3  (0) 2024.05.15
[SWEA][S/W 문제해결 기본][Python] 1229 암호문 2  (1) 2024.05.15
[SWEA][S/W 문제해결 기본][Python] 1228 암호문 1  (1) 2024.05.15
'🚩 Coding Test/SWEA' 카테고리의 다른 글
  • [SWEA][Python] 5431 민석이의 과제 체크하기
  • [SWEA][Python] 20019 회문의 회문
  • [SWEA][S/W 문제해결 기본][Python] 1230 암호문 3
  • [SWEA][S/W 문제해결 기본][Python] 1229 암호문 2
zo0oz
zo0oz
꾸준함 기르기
  • zo0oz
    우당탕탕굴러가는하루
    zo0oz
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 🏠 Home
    • 📑 Tag
    • Github
    • 분류 전체보기 (295)
      • 📃 취준 회고록 (0)
        • 2024 하반기 (0)
      • 📅 매일매일 CS (2)
      • 🚩 Coding Test (203)
        • Baekjoon (94)
        • Programmers (43)
        • Code Tree (34)
        • SWEA (19)
        • HackerRank (2)
        • SQL (8)
      • 🇱 Languages (4)
        • Python (4)
      • 🇫 Framework (2)
        • fastAPI (2)
      • 🤖 AI (9)
        • LLM (1)
        • Computer Vision (3)
      • 📈 Data-Science (4)
        • Pandas (4)
      • 🛠️ 형상관리 (6)
        • Git (6)
      • 💥 Projects (8)
        • 개인실습 (7)
      • 🇰 Kakaotech Bootcamp (17)
        • 이론 (9)
        • 실습 (5)
      • 🇳 Naver BoostCourse (9)
        • 파이썬으로 시작하는 데이터 사이언스 (6)
      • 🏆 자격증 (25)
        • 정보처리기사 (10)
        • ADsP (1)
        • SQLD (13)
        • OPIc (0)
      • 🔎 etc (1)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
zo0oz
[SWEA][Python] 1954 달팽이 숫자
상단으로

티스토리툴바