SWEA(Python) 풀이/D3

SWEA[D3] (Python) 4751번 다솔이의 다이아몬드 장식 풀이

개발윗미 2022. 5. 23. 11:21

Python으로 구현한 4751번 다솔이의 다이아몬드 장식 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AWSNw5jKzwMDFAUr&categoryId=AWSNw5jKzwMDFAUr&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=3&pageSize=10&pageIndex=5 

 

SW Expert Academy

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

swexpertacademy.com


t = int(input())

direction = [(-2, 0), (2, 0), (0, -2), (0, 2), (-1, -1), (1, -1), (1, 1), (-1, 1)]
for tc in range(1, t + 1) :
    data = list(str(input()))
    board = [['.' for _ in range(len(data) * 4 + 1)] for _ in range(5)]
    index = 5 // 2
    for i in range(2, len(board[0]), 4) :
        board[index][i] = data.pop(0)
        for d in range(8) :
            nx, ny = direction[d]
            nx = index + nx
            ny = i + ny
            board[nx][ny] = '#'

    for i in range(len(board)) :
        print(''.join(board[i]))

 

1. 두 칸 이후에 '#' 문자를 넣을 (상 하 좌 우) 방향과 한 칸 이후 '#' 문자를 넣을 대각선 네 방향을 direction 리스트에 저장한다.

 

2. 각 테스트 케이스마다 data를 입력받아 중간 위치에 4칸 단위로 data 문자열의 문자를 하나씩 넣는다.

 

3. 문자를 하나씩 넣을 때마다 해당 위치를 기준으로 하여 8개의 방향(direction)에 '#' 문자를 할당한다.

 

4. 최종적으로 board 상태를 문제에서 요구한 출력 형식에 맞추어 출력한다.