[Python] 백준 3048 - 개미

메르센고수·2024년 1월 2일
0

Baekjoon

목록 보기
39/48
post-thumbnail


문제 - 개미 (Silver4)

[백준 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을 구현할 필요도 없고, 역순으로 뒤집는 것도 편해서 훨씬 구현이 쉬운 것 같다.

profile
블로그 이전했습니다 (https://phj6724.tistory.com/)

0개의 댓글