백준 23841번: 데칼코마니
문제 설명
- 말 그대로 좌우가 대칭이 되는 데칼코마니를 만들어야 합니다.
접근법
- 세로로 대칭을 이루도록 리스트를 만들어 주면 됩니다.
- 26가지 물감(G,R,B,Y...)을 모두 고려하는 것이 아니라 빈 곳('.')이 아니면 해당 물감과 동일한 색을 반대쪽에 칠하면 됩니다.
- 문자열 변수의 한 값을 바꾸는 것보다 문자열을 list에 담는 게 더 효율적입니다.
문자열
a = "abcaa"
의 3번 째 값을 k로 바꾸기 위해서는a = a[:2]+'k'+a[3:]
리스트a = ["a","b","c","a","a"]
의 3번 째 값을 k로 바꾸기 위해서는a[2] = 'k'
정답
N,M = list(map(int,input().split(' ')))
lst = []#빈 리스트를 만듭니다
for _ in range(N):
lst.append(list(input()))#빈 리스트에 리스트 형태로 만든 값을 넣습니다
"""
lst = [['G','.','.','R','.','.'],
['.','.','B','.','.','.'],
['Y','.','.','.','.','.']]
"""
for i in range(N):
for j in range(M):
if lst[i][j] != '.': #lst[i][j]에 칠해진 값이 있다면
lst[i][M-j-1] = lst[i][j] #반대쪽(lst[i][M-j-1])에 lst[i][j]와 동일한 색을 칠합니다
#정답을 출력합니다
for i in range(N):
print(''.join(lst[i]))
Author And Source
이 문제에 관하여(백준 23841번: 데칼코마니), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@qwerty1434/백준-23841번-데칼코마니저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)