[백준 5582] 공통 부분 문자열

Junyoung Park·2022년 5월 29일
0

코딩테스트

목록 보기
446/631
post-thumbnail

1. 문제 설명

공통 부분 문자열

2. 문제 분석

이차원 배열을 통해 공통 문자열이 같다면 이전에 나온 값보다 +1을 해주자. 전체 배열에 기록된 값 중 최댓값이 공통 부분 문자열 중 최장 문자열의 길이다.

3. 나의 풀이

import Foundation

let str1 = Array(readLine()!.map{String($0)})
let str2 = Array(readLine()!.map{String($0)})

var numbers = Array(repeating: Array(repeating: 0, count: str2.count + 1), count: str1.count + 1)

var answer = 0

for i in 1...str1.count {
    for j in 1...str2.count {
        if str1[i-1] == str2[j-1] {
            numbers[i][j] = numbers[i-1][j-1] + 1
            answer = max(answer, numbers[i][j])
        }
    }
}

print(answer)
profile
JUST DO IT

0개의 댓글