💬 문제
대충 만든 자판
💬 Idea
- keymap을 돌며 keyDict에 자판별 최솟값을 저장해준다.
- 이후 targets를 돌며 타겟 문자열 각각의 최소 횟수을 더하여 각 타겟 문자열이 최소 몇번 눌려야하는지 구해준다.
- 만약 keyDict에 타겟 문자가 없을 경우 -1을 리턴하기 위해 for문을 break해주었다.
💬 풀이
import Foundation
func solution(_ keymap:[String], _ targets:[String])->[Int]{varkeyDict:[String:Int]=[:]varresult:[Int]=[]forkeyin keymap {for(idx, k)in key.enumerated(){ifkeyDict[String(k)]==nil{keyDict[String(k)]= idx +1}else{keyDict[String(k)]=keyDict[String(k)]! > idx +1? idx +1:keyDict[String(k)]!
}}}fortargetin targets {varans=0fortin target {ifkeyDict[String(t)]==nil{
ans =-1break}else{
ans +=keyDict[String(t)]!
}}
result.append(ans)}return result
}
💬 문제대충 만든 자판
💬 Idea💬 풀이