문제
https://programmers.co.kr/learn/courses/30/lessons/77484
문제 풀이
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
let zeroCount = lottos.filter { $0 == 0}.count
let winCount = win_nums.filter { lottos.contains($0) }.count
return [min(7-winCount-zeroCount,6), min(7-winCount,6)]
}
코드 설명
1. .filter {}
filter는 단어 뜻 그대로 내부의 값들을 걸러서 추출하는 역할을 합니다.
let x = [10, 3, 20, 15, 4]
var filtered = x.filter { $0 > 5 }.sorted() // 10 15 20
2. .contains()
contains 함수는 특정 문자 포함여부를 Boolean 값으로 리턴해주는 함수이다.
이 함수는 문자열에서도 사용할 수 있고, 배열에서도 사용할 수 있다.
3. min()
값을 비교해 최소값을 리턴해주는 함수이다.
소감
어떻게 풀어야 할지 감은 왔지만 코드로 표현에서 막혔던 문제이다.
검색을 통해 다른 사람이 쓴 코드를 보고 함수들을 따로 공부하면서 배울 수 있었다.
참고:
https://minosaekki.tistory.com/21
https://0urtrees.tistory.com/240
'Coding Test' 카테고리의 다른 글
Programmers.K번째수 (Swift) (0) | 2022.03.29 |
---|---|
Progammers.음양 더하기 (Swift) (0) | 2022.03.29 |
Programmers.없는 숫자 더하기 (Swift) (0) | 2022.03.28 |
Programmers.숫자 문자열과 영단어 (Swift) (0) | 2022.03.28 |
Programmers.신규 아이디 추천 (Swift) (0) | 2022.03.28 |
댓글