난이도 : D3
문제번호 : 4751
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
다솔이는 어떤 문자열을 하나 가지고 있는데, 이 문자열이 별로 아름답지 못하다고 생각하고 있다. 만약 문자열의 길이가 1보다 더 크면, 인접한 문자는 ‘#’과 ‘.’을 공유하여 장식한다. 주어진 문자열을 장식해주는 프로그램을 작성하라. |
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다. |
출력
각 테스트 케이스마다 다섯 줄에 걸쳐 장식된 문자열을 출력한다. |
예시
입력 | 출력 |
2 |
..#.. .#.#. #.D.# .#.#. ..#.. ..#...#...#...#...#.. .#.#.#.#.#.#.#.#.#.#. #.A.#.P.#.P.#.L.#.E.# .#.#.#.#.#.#.#.#.#.#. ..#...#...#...#...#.. |
2. 문제풀이
줄이다 보니 엄청 줄여서 풀 수 있는 문제였다. 처음은 보면 양쪽에 .. 2개가있다. 그사이에는 #이 존재하는데 # 사이에는 ...이 3개가 조재한다. 두번재 줄은 .#이 반복해서 나타난다. 마지막은 양끝애 #. .#이 있고 사이에는 .#. 이 반복한다. 이걸 join 함수를 이용하여 나타내었다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
|
#D3 4751 다솔이의 다이아몬드 장식
T = int(input())
for i in range(T):
t = input()
n = len(t)
f = '..' + '...'.join('#'*n) + '..'
s = '.#'*(n*2)+'.'
t = '#.' + '.#.'.join(t) + '.#'
print("{0}\n{1}\n{2}\n{1}\n{0}".format(f,s,t))
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
햄버거 다이어트 Python(SW Expert Academy) (0) | 2020.04.04 |
---|---|
N-Queen Python(SW Expert Academy) (0) | 2020.04.02 |
미로의 거리 Python(SW Expert Academy) (0) | 2020.03.31 |
노드의 거리 Python(SW Expert Academy) (0) | 2020.03.30 |
피자굽기 Python(SW Expert Academy) (0) | 2020.03.29 |
댓글