SWEA 4751デソルのダイヤモンド装飾(Python付き)
私が考えている解決策
問題の思考点
ちょっと近づきにくい感じ
下図は私がどのように実現したかを図で説明しています.
もともと横に伸びる形だったはずですが、複雑になるかもしれません.
データを追加することで、右に90度回転して下に出力します.
最後に左に90度回転して出力します.
コード実装
T = int(input())
start = end = ['.', '.', '#', '.', '.']
second = fourth = ['.', '#', '.', '#', '.']
third = ['#', '.', '', '.', '#']
storage = ''
for tc in range(1, 1+T):
string = input().strip()
result = []
# 글자 수만큼 first, second, third, fourth 를 반복적으로 출력할 리스트에 추가합니다.
for i in range(len(string)):
result.append(start)
result.append(second)
tmp = third[:]
# 기존값을 출력할 글자로 대체합니다.
tmp[2] = string[i]
result.append(tmp)
result.append(fourth)
# 마지막에 뚜껑을 닫아줍니다.
result.append(end)
output = [[0] * len(result) for _ in range(len(result[0]))]
# 아래로 길게 늘어진 데이터를 왼쪽으로 90도 회전에서 저장
for r in range(len(result)):
for c in range(len(result[0])):
output[-c-1][r] = result[r][c]
for i in range(len(output)):
storage += ''.join(output[i]) + '\n'
print(storage)
Reference
この問題について(SWEA 4751デソルのダイヤモンド装飾(Python付き)), 我々は、より多くの情報をここで見つけました https://velog.io/@daeungdaeung/SWEA-4751-다솔이의-다이아몬드-장식with-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol