[BOJ] Python 백준 23841번 데칼코마니 브론즈 2
알고리즘/알고리즘 문제 풀이2021. 12. 19. 00:39
728x90
https://www.acmicpc.net/problem/23841
문제 풀이
2차원 그래프에서도 상당히 쉬운 편에 속하는 문제였다.
그림의 가로길이는 짝수이며 접었을 때 물감이 겹치는 부분도 없다고 하니 그냥 구간을 절반으로 나눠 물감이 있으면 반대편에도 추가하는 방식으로 풀면 되는 브론즈다운 문제였다.
상당히 쉬우니 바로 전체 코드로 넘어가겠다.
n,m=map(int,input().split())
graph=[]
for i in range(n):
temp=list(input())
for j in range(m//2):
if temp[j]!='.':
temp[m-j-1]=temp[j]
elif temp[m-j-1]!='.':
temp[j]=temp[m-j-1]
graph.append(temp)
for i in range(len(graph)):
for j in range(len(graph[i])):
print(graph[i][j],end="")
print()
각 줄을 입력받으면서 바로 물감을 갱신한 뒤 그래프에 추가하여 출력하는 방식으로 구현했다.
5번째 줄이 물감을 갱신하는 반복문이며 구간을 절반으로 나눠 6번째 줄은 첫 문자부터 절반 부분까지, 8번째 줄은 뒷 문자부터 절반 부분까지 물감이 있으면 반대편에 추가하고 완료되면 그래프에 추가했다.
그리고 완전 탐색을 통해 그래프 출력만 하면 되는 쉬운 문제였다.
만약에 인덱싱 부분이 헷갈린다면 작은 숫자를 몇 개 대입해보면 쉽게 해결할 수 있을 것이다.
728x90
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
[BOJ] Python 백준 1991번 트리 순회 실버 1 (0) | 2021.12.20 |
---|---|
[BOJ] Python 백준 1012번 유기농 배추 실버 2 (0) | 2021.12.20 |
[BOJ] Python 백준 5639번 이진 검색 트리 실버 1 (0) | 2021.12.16 |
[BOJ] Python 백준 23827번 수열 (Easy) 실버 4 (0) | 2021.12.16 |
[BOJ] Python 백준 1038번 감소하는 수 골드 5 (0) | 2021.12.08 |
댓글()