[백준 3048] https://www.acmicpc.net/problem/3048
두 개의 문자열을 받는 배열을 만든 뒤, 첫 번째 문자열에 들어 있는 문자의 순서를 역순으로 바꾸고 두 배열을 합친 새로운 배열로 진행.
# Question: BJ 3048 (https://www.acmicpc.net/problem/3048)
# Rank : Silver 4
# Algorithm : String, Simulation
N1, N2=map(int, input().split())
A=list(input())
B=list(input())
T=int(input())
# A배열을 역순으로 뒤집고 B배열과 합침
C=A[::-1]+B
for _ in range(T):
for i in range(len(C)-1):
if C[i] in A and C[i+1] in B:
C[i], C[i+1]=C[i+1], C[i]
# B의 첫번째 요소가 C의 제일 앞에 오는 순간
if C[i+1] in A[0]:
break
# 이렇게 안하면 리스트 형식으로 출력됨
for i in range(N1+N2):
print(C[i],end="")
print(C) 를 해버리면 이런식으로 list 형식으로 출력되게 된다.
for i in range(N1+N2):
print(C[i],end="")
이렇게 C[i]를 출력을 하게 되면 string으로 출력이 된다.
C++로 하려고 했는데 너무 복잡해져서 Python으로 했는데 Python이 Swap을 구현할 필요도 없고, 역순으로 뒤집는 것도 편해서 훨씬 구현이 쉬운 것 같다.