일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ftz
- level13
- 재귀
- PHP
- 정렬 알고리즘
- 백준
- OSI
- 스택
- 암호수학
- 시간복잡도
- Stack
- HTML
- c언어
- 두근두근 자료구조
- 자료구조
- System
- 파일 시스템
- web
- Java
- 큐
- pwnable.kr
- SWiFT
- ftz level13
- C
- LoB
- 미로 탐색 알고리즘
- 파이썬
- windosws wbcs
- War Game
- windosw 문자열
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기)로또의 최고 순위와 최저 순위 본문
Programming/Algorithm & Data Structure
[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기)로또의 최고 순위와 최저 순위
guswlsdk 2022. 6. 28. 10:52반응형
풀이
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)]
}
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 2021 카카오 채용연계형 인턴십 > 숫자 문자열과 영단어 (0) | 2022.07.05 |
---|---|
[Swift] 프로그래머스 2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천 (0) | 2022.07.04 |
[Swift] 프로그래머스 2022 KAKAO BLIND RECRUITMENT신고 결과 받기 (0) | 2022.06.27 |
[Swift] 프로그래머스 코딩테스트 연습>괄호 변환 (0) | 2022.05.31 |
[Swift] 프로그래머스 코딩테스트 연습 > 짝지어 제거하기 (0) | 2022.05.27 |