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개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN