728x90
https://school.programmers.co.kr/learn/courses/30/lessons/160586#qna
풀이
keymap에 target의 문자가 하나라도 없으면 무조건 -1을 리턴 해야하는 것이 제일 핵심인 문제
func solution(_ keymap:[String], _ targets:[String]) -> [Int] {
let keymapp = keymap.map{$0.map{String($0)}}
let targetss = targets.map{$0.map{String($0)}}
var result = [Int]()
var count = 0
for str in targetss {
result.append(count)
count = 0
for char in 0 ..< str.count {
var find = finds(character: str[char], keymap: keymapp)
count += find
if find == -1 {
count = -1
break
}
}
}
result.removeFirst()
result.append(count)
return result
}
func finds(character char: String, keymap key: [[String]]) -> Int {
var count = 101
for i in 0 ..< key.count {
for j in 0 ..< key[i].count {
if char == key[i][j] {
let idx = j + 1
if count >= idx {
count = idx
break
}
}
}
}
return count == 101 ? -1 : count
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스: 멀리뛰기 (0) | 2023.07.12 |
---|---|
프로그래머스: Summer/Winter Coding(~2018) - 점프와 순간이동 (0) | 2023.07.11 |
프로그래머스: 바탕화면 정리 (0) | 2023.07.03 |
프로그래머스: 달리기 경주 (0) | 2023.07.02 |
프로그래머스: 공원산책 (0) | 2023.07.02 |
댓글