
Problem
μ½λ©ν μ€νΈ μ°μ΅ - λ‘λμ μ΅κ³ μμμ μ΅μ μμ
λ‘λ 6/45(μ΄ν 'λ‘λ'λ‘ νκΈ°)λ 1λΆν° 45κΉμ§μ μ«μ μ€ 6κ°λ₯Ό μ°μ΄μ λ§νλ λνμ μΈ λ³΅κΆμ λλ€. μλλ λ‘λμ μμλ₯Ό μ νλ λ°©μμ λλ€. 1 μμ λΉμ²¨ λ΄μ© 1 6κ° λ²νΈκ° λͺ¨λ μΌμΉ 2 5κ° λ²νΈ
programmers.co.kr
Solution
1. 0μ΄ μλ μ«μλ€μ νν°λ§ ν΄μ€λ€.
2. 0μ΄ μλ μ«μλ€ μ€ λ‘λ λ²νΈμ μΌμΉνλ μ«μμ κ°―μλ₯Ό μΈμ€λ€.
3. 2μμ ꡬν κ°―μκ° 0~1 μ¬μ΄λΌλ©΄ 6μ λ°ννκ³ μλλΌλ©΄ 7μμ κ°―μλ₯Ό λΊ λ§νΌμ μ΅μ λ±μλ‘ νλ€.
4. 2μμ ꡬν κ°―μκ° 0~1 μ¬μ΄λΌλ©΄ 6μ λ°ννκ³ μλλΌλ©΄ 7μμ (2μμ ꡬν κ°―μμ 0μ κ°―μλ§νΌμ λν΄μ£Όκ³ ) λΊ κ²μ μ΅κ³ λ±μλ‘ νλ€.
Source Code
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] { | |
//0μ΄ μλ μ«μλ€ | |
let noZeroNums = lottos.filter{$0 != 0} | |
//0μ΄ μλ μ«μλ€ μ€ λ‘λ λ²νΈμ λ§λ μ«μλ€ | |
let winCount = noZeroNums.filter{win_nums.contains($0)}.count | |
//λ‘λ λ²νΈμ λ§λ μ«μλ€μ΄ 0μμ 1μ¬μ΄λΌλ©΄ 6μ λ°ν νκ³ μλλΌλ©΄ 7μμ λ§λ μ«μλ₯Ό λΊ κ²μ λ°ν | |
let min = 0...1 ~= winCount ? 6 : 7-winCount | |
//minκ³Ό λμΌ | |
let max = 0...1 ~= winCount+lottos.count-noZeroNums.count ? 6 : 7-(winCount+lottos.count-noZeroNums.count) | |
return [max,min] | |
} |
'π Problem Solution > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] νλ‘κ·Έλλ¨Έμ€ μ½μμ κ°μμ λ§μ (0) | 2021.05.18 |
---|---|
[Swift] νλ‘κ·Έλλ¨Έμ€ μμ (0) | 2021.05.15 |
[Swift] νλ‘κ·Έλλ¨Έμ€ 3μ§λ² λ€μ§κΈ° (0) | 2021.05.08 |
[Swift] νλ‘κ·Έλλ¨Έμ€ λ΄μ (0) | 2021.05.05 |
[Swift] νλ‘κ·Έλλ¨Έμ€ μμ λνκΈ° (0) | 2021.05.03 |
λκΈ