나의 기록, 현진록

[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기)로또의 최고 순위와 최저 순위 본문

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)]
}

 

 

 

 

반응형