원본 문자의 순서대로 타겟 문자를 반복, 타겟 문자의 순서대로 커지는 조건으로 개수를 카운트할 수 있다. 타겟 문자가 들어 있는 개수는 마지막 타겟 문자 인덱스의 개수다.
import Foundation
let S = Array(String(readLine()!))
let T = Array(String(readLine()!))
var Tbox = Array(repeating: 0, count: T.count)
var cnt = 0
for i in 0..<S.count {
for j in 0..<T.count {
if S[i] == T[j] {
if j == 0 {
Tbox[j] += 1
} else if Tbox[j-1] > Tbox[j] {
Tbox[j] += 1
}
}
}
}
print(Tbox[T.count-1])