2022. 10. 2. 15:12ใํ๋ก๊ทธ๋๋จธ์ค-Swift
๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/77484
๋์ ํ์ด
0์ ์ผ๋ง๋ ๋ด๊ณ ์๋์ง ์นด์ดํธ๋ฅผ ํ๊ณ ๋น์ฒจ๋ฒํธ๊ฐ ๋ช๊ฐ์ธ์ง๋ฅผ ์นด์ดํธํด์ switch๋ฌธ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
var zeroBeforeLotto = win_nums.filter{ lottos.contains($0) }.count
let zeroCount = lottos.filter{ $0 == 0 }.count
var bestCount = zeroBeforeLotto + zeroCount
var worstNum = 0
var result:[Int] = []
switch bestCount {
case 6:
if zeroCount == 6 {
result.append(1)
result.append(0+zeroCount)
} else {
result.append(1)
result.append(1+zeroCount)
}
case 5:
result.append(2)
result.append(2+zeroCount)
case 4:
result.append(3)
result.append(3+zeroCount)
case 3:
result.append(4)
result.append(4+zeroCount)
case 2:
result.append(5)
result.append(5+zeroCount)
default:
result.append(6)
result.append(6)
}
return result
}
(switch๋ฌธ์ ์์์์ ํ๋์ฝ๋ฉ.. ๋ณด์ด์๋์..?)
case6์์ if๋ฌธ์ ๋ฃ์ ๊ฒ์ 6๊ฐ๊ฐ 0์ผ๋ 1+6์ ํ๊ฒ๋๋ฉด 7์๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฐ ์ ๋ง์ ์ธ ํ์ด ์์์ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ๋ด ํ์ด๋ฅผ ๊ฐ์ ํ๋ค!
๋ค๋ฅธ ์ฌ๋์ ํ์ด
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
var winCount = win_nums.filter{ lottos.contains($0) }.count
let zeroCount = lottos.filter{ $0 == 0 }.count
return [min(7-winCount-zeroCount, 6), min(7-winCount, 6)]
}
์๋ฆ๋ค์ด ํ์ด๋ค. ๋น์ฒจ๊ฐ์์ ๋ฐ๋ผ์ ์์๊ฐ ๋ณ๋๋๋ ๊ฒ์ 7-winCount๋ก ํํํ๊ณ (๋น์ฒจ๋ ๋ฒํธ์ ๊ฐ์๊ฐ 5๊ฐ๋ผ๋ฉด 2๋ฑ์ด๊ธฐ ๋๋ฌธ), ๋น์ฒจ๊ฐ์๋ ์๊ณ 0์ ๊ฐ์๋ ์์๋ 7์ด๋๋๋ฐ ์ด๋ฅผ minํจ์๋ฅผ ํตํด 6๊ฐ๋ก ์ ํํ ์ ์ด ์ธ์๊น๋ค.
๋ค๋ฅธ ์ฌ๋์ ํ์ด - Set์๋ฃ๊ตฌ์กฐ
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
let mine = Set(lottos)
let wins = Set(win_nums)
let score = mine.intersection(wins).count
let joker = lottos.filter{ $0 == 0 }.count
let ranking = [6, 6, 5, 4, 3, 2, 1]
return [ranking[score+joker], ranking[score]]
}
ranking ๋ฐฐ์ด์ ํตํด์ 1๊ฐ์ผ๋์ 2๊ฐ์ผ๋์ ๋ฑ์๋ฅผ ๋ฃ์ ์ ์๊ณ ์ด๋ฅผ ํตํด ์ง๊ด์ ์ธ ํ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
(์ญ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ด์ผ ์๊ฐ์ด ํ์ฅ๋๋ ๊ฒ ๊ฐ๋ค)
ํผ๋๋ฐฑ
1. ๋ฑ์๋ฅผ ์ฒดํฌํ ๋ 0์๋ ์๊ธฐ ๋๋ฌธ์ 7์์ ๋นผ์ฃผ๊ณ minํจ์๋ก ์ต์๊ฐ์ ์ ํด์ฃผ๋ ๊ฐ๋ ์ ์์งํ์.
2. intersectionํจ์๋ Set๋ฉ์๋์์ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํคํจ๋ ๋๋ฅด๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (1) | 2022.10.03 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต(Swift) (0) | 2022.10.02 |
ํ๋ก๊ทธ๋๋จธ์ค - ๋คํธ๊ฒ์(Swift) (0) | 2022.10.01 |
์คํจ์จ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (1) | 2022.09.30 |
์์ ํ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (2) | 2022.09.29 |