풀이
- 해당 문제에서 중요했던 점으로 생각하는 건
- 깊은 복사를 인지하는지 물어보는 문제 같았다.
- 카드 접어서 추가하는 건 check로 받아온 값을 mtx에 넣어주며
- 코드와 같이 슬라이싱을 활용해서 li를 만들어주고
- 얕은 복사를 하지 않기 위해 반복문으로 하나씩 값을 넣어주고
- 이후 에러 위치에는 기존 값에 따라 서로 다른 값으로 넣어주면서 해결
import sys
input = sys.stdin.readline
r,c = map(int,input().split())
mtx = [[""]*(2*c) for _ in range(r*2)]
check = [list(input().rstrip('\n')) for _ in range(r)]
err = list(map(int,input().split()))
cnt = r-1
for i in range(2*r):
if r > i:
li = check[i] + check[i][::-1]
for j in range(2*c): mtx[i][j] = li[j]
else:
li = mtx[cnt]
for j in range(2*c): mtx[i][j] = li[j]
cnt -= 1
mtx[err[0]-1][err[1]-1] = "#" if mtx[err[0]-1][err[1]-1] == "." else "."
for i in range(2*r): print("".join(mtx[i]))
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 정수를 나선형으로 배치하기 (0) | 2024.02.16 |
---|---|
[백준, 파이썬, 1544번] 사이클 단어 (0) | 2024.02.15 |
[백준, 파이썬, 1835번] 카드 (0) | 2024.02.14 |
[백준, 파이썬, 4583번] 거울상 (1) | 2024.02.14 |
[백준, 자바, 1384번] 메시지 (0) | 2024.02.13 |