Programming/Algorithm & Data Structure
[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기)로또의 최고 순위와 최저 순위
guswlsdk
2022. 6. 28. 10:52
반응형
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
풀이
1. 먼저 0의 갯수를 파악한다.
2. 0을 제외한 번호 중 당첨 번호 갯수를 파악한다.
3. 최고 순위 = 당첨 번호 갯수 + 0의 갯수, 최저 순위 = 당첨 번호 갯수이다.
풀어봤던 프로그래머스 코딩테스트 연습 level1 문제 중 가장 쉬운 것 같다.
코드
import Foundation
func winRank(num: Int) -> Int{
switch num{
case 6: return 1
case 5: return 2
case 4: return 3
case 3: return 4
case 2: return 5
default: return 6
}
}
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
let unknownNumCount = lottos.filter { $0 == 0 }.count
var winCount = 0
for num in lottos.filter({ $0 != 0 }){
if win_nums.contains(num){
winCount += 1
}
}
return [winRank(num: winCount+unknownNumCount), winRank(num: winCount)]
}
반응형