[백준 3048] 개미

Junyoung Park·2022년 8월 1일
0

코딩테스트

목록 보기
517/631
post-thumbnail

1. 문제 설명

개미

2. 문제 분석

개미 순서를 하나의 배열로 만든 뒤, 개미 집단을 집합을 통해 관리하자. 맞닿아 있는 인덱스의 개미들이 서로 다른 집단이라면 이동해야 한다.

3. 나의 풀이

import Foundation

let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (N1, N2) = (input[0], input[1])
var firstAnts = Array(readLine()!).map{String($0)}
let firstAntsSet = Set(firstAnts)
firstAnts.reverse()
var secondAnts = Array(readLine()!).map{String($0)}
let secondAntsSet = Set(secondAnts)
let T = Int(String(readLine()!))!

var ants = firstAnts + secondAnts

for _ in 0..<T {
    var tmpIdx = [Int]()
    for idx in 0..<ants.count-1 {
        if firstAntsSet.contains(ants[idx]) && secondAntsSet.contains(ants[idx+1]) {
            tmpIdx.append(idx)
        }
    }
    for idx in tmpIdx {
        ants.swapAt(idx, idx+1)
    }
}
print(ants.joined())
profile
JUST DO IT

0개의 댓글