Swift랑 친해지기/programmers 풀기

[프로그래머스] 대충 만든 자판 (Swift)

데브킹덕 2023. 10. 30. 17:29

https://school.programmers.co.kr/learn/courses/30/lessons/160586

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import Foundation

func solution(_ keymap:[String], _ targets:[String]) -> [Int] {
  
    var dic: [String:Int] = [:]
    var result = [Int]()
  
  // dic- key:알파벳, value: index 저장
    for k in keymap{
        var index = 1
        for word in k{
            if dic[String(word)] == nil{
                dic[String(word)] = index
            }
            else{
                if dic[String(word)]! > index{
                    dic[String(word)] = index
                }
            }
            index += 1
        }
    }

//value값을 가질 경우 인덱스 추가, 없을시 -1 추가
    for word in targets{
        var count = 0
        var haveAlphabet = true
        for alphabet in word{
            if let a = dic[String(alphabet)]{
                count += a
            }else{
                result.append(-1)
                haveAlphabet = false
                break
            }   
        }
        if haveAlphabet == true{
            result.append(count)    
        }
        
    }
    return result
}