Swift랑 친해지기/programmers 풀기

[프로그래머스] 추억 점수 (Swift)

데브킹덕 2023. 4. 25. 18:32

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

 

프로그래머스

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

programmers.co.kr

변수 설정

- yearningDic

: String 형의 Key값으로 그리워하는 사람의 이름, Int 형의 value 값으로 그리움 수치

 

- result

: 추억 점수를 담은 배열

 

- sum

: 2차원 배열의 1행의 그리움 합산한 값

 

풀이)

1. yearningDic 딕셔너리에 key값과 value를 가지도록함

2. 2차원 배열의 1행(1차원 배열)마다 그리운 사람이 있는지 확인하여 있으면 sum에 value 값을 더하고 없으면 0을 더하도록 함 

(이때 ??{Nil-Coalescing} 연산자를 이용함)

3. 사진에 그리운 사람의 그리움을 모두 더했으면 result에 추가해주고 다음 행을 읽을때 sum을 0으로 초기화 하였음

4. result 반환 

 

 

import Foundation

func solution(_ name:[String], _ yearning:[Int], _ photo:[[String]]) -> [Int] {
    
    var yearningDic: [String : Int] = [:]
    var result = [Int]()
    
    for i in 0..<name.count{
        yearningDic[name[i]] = yearning[i]
    }
    
    
    for oneDimensionalArray in photo{
        var sum = 0
        for people in oneDimensionalArray{
            sum = sum + (yearningDic[people] ?? 0)
        }
        result.append(sum)
    }
    
    return result
}