Stay Hungry Stay Foolish

SWEA

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

dev스카이 2024. 10. 22. 12:09

[문제 링크] 👇

 

SW Expert Academy

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

swexpertacademy.com

 


 

풀이

💡 핵심 : 규칙을 찾자

 

입력이 SWEA 라고 했을 때, 다음과 같은 규칙이 있다. 아래의 규칙은 모든 문자열에 적용된다.

  • 첫 번째 줄은 ..#.
  • 두 번째 줄은 .# (네 번째 줄과 동일)
  • 세 번째 줄은 #. (다섯 번째 줄과 동일)

 

규칙을 이용해 완성하려면, 다음과 같은 과정이 필요하다.

print(line1 * length + '.')
  • 위 구문은 문자열을 반복하고 결합하는 연산을 수행하는 구문이다.
  • line1 * length
    • line1 문자열을 length만큼 반복한다.
    • line1은 '..#.' 이고 length가 4이므로, line1 * length는 " ..#...#...#...#...#...#." 가 된다.
  • + '.'
    • line1 * length의 결과에 '.' 문자를 결합한다. 즉, 반복된 문자열 끝에 마침표(.)를 추가한다.
    • 첫 번째 줄의 맨 끝은 규칙에 해당하지 않기 때문에 '.' 를 추가하여 " ..#...#...#...#...#...#.." 를 완성한다.

 

다른 줄도 위와 같은 방식으로 완성하면 된다.

 

Solution

test_case = int(input())
for tc in range(test_case):
    word = input()
    length = len(word)
    line1 = '..#.'
    line2 = '.#'
    line3 = '#.'
    print(line1 * length + '.')
    print(line2 * length * 2 + '.')
    for i in range(length):
        print(line3 + word[i] + '.', end='')
    print('#')
    print(line2 * length * 2 + '.')
    print(line1 * length + '.')