문제를 정리해보자.
N X M인 격자무늬의 사각형이 있다.
N은 세로의 길이, M은 가로의 길이이다.
그리고 M은 짝수이다.
이 격자무늬 사각형의 칸에는 물감이 묻은 곳이 있다.
이 사각형을 반으로 접었을 때, 맞닿는 칸은 물감이 번진다.
번진 결과를 출력해야 한다.
풀이를 생각해보자.
M이 짝수인 점이 중요하다.
만약 M이 6이고, N은 4라고 하자.
가로의 index를 보면
0 5
1 4
2 3
이렇게 맞닿게 된다.
즉,
i (0 <= i <= (M // 2) - 1) 이라고 할 때,
i번째 칸은 (M - 1) - i번째 칸과 맞닿는다.
구현해보자.
n, m = map(int, input().split()) # 세로, 가로
# 세로
for _ in range(n):
li = []
# 가로
for string in input():
li.append(string)
for i in range(m // 2):
if li[i] == '.':
li[i] = li[(m - 1) - i]
else:
li[(m - 1) - i] = li[i]
for string in li:
print(string, end="")
print()
시간복잡도는 O(NM)이다.
'알고리즘 > 대회' 카테고리의 다른 글
[대회][BOJ][INU 코드페스티벌 2021] C번 23843 : 콘센트 (0) | 2021.12.20 |
---|---|
[대회][BOJ][INU 코드페스티벌 2021] B번 23842 : 성냥개비 (0) | 2021.12.20 |
[대회][BOJ][INU 코드페스티벌 2020] D번 20365 : 블로그2 (0) | 2021.11.18 |
[대회][BOJ][INU 코드페스티벌 2020] D번 20364 : 부동산 다툼 (0) | 2021.11.18 |
[대회][BOJ][INU 코드페스티벌 2020] C번 20363 : 당근 키우기 (0) | 2021.11.18 |