본문 바로가기

알고리즘/구현

파이썬 | 백준 | 3048 | 개미

solution

방향 다르면 교환

# 3048, 개미
import sys

N1, N2 = map(int, sys.stdin.readline().split())
ants1 = list(sys.stdin.readline().rstrip())
ants2 = list(sys.stdin.readline().rstrip())
T = int(sys.stdin.readline())

dir = {}	# 방향 저장
for ant in ants1:
    dir[ant] = 0    # 뒤로 이동
for ant in ants2:
    dir[ant] = 1    # 앞으로 이동

ants1.reverse()
ants1.extend(ants2)

for _ in range(T):
    i = 0
    while i < len(ants1)-1:
        if dir[ants1[i]] == 0 and dir[ants1[i+1]] == 1:
            ants1[i], ants1[i+1] = ants1[i+1], ants1[i]		
            i += 1
        i += 1

for ant in ants1:
    print(ant, end='')

문제 출처 www.acmicpc.net/problem/3048

 

3048번: 개미

T초가 지난 후에 개미의 순서를 출력한다. 첫 번째 개미 그룹은 왼쪽에서 오른쪽으로 움직이고, 두 번째 그룹은 반대 방향으로 움직인다.

www.acmicpc.net