반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 로또의 최고 순위와 최저 순위 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
풀이
문제 자체에서 어려운 점은 없었습니다.
천천히 읽으면서 작성하면 될 것 같습니다.
테스트 14에서 계속 탈락해서 고민을 했는데요.
0이 없고 6등인 케이스를 보충하였더니 통과를 했습니다.
참고가 되었으면 좋겠습니다.
전체 코드
import Foundation
func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] {
var zeroCount = 0, sameCount = 0
for number in lottos {
if number == 0 {
zeroCount += 1
} else {
for winNum in win_nums {
if number == winNum {
sameCount += 1
}
}
}
}
let minGrade = 6 - sameCount + 1
let maxGrade = minGrade - zeroCount
return [min(maxGrade, 6), min(minGrade, 6)]
}
let lottos = [1, 2, 3, 4, 5, 6]
let win_nums = [7, 8, 9, 10, 11, 12]
print(solution(lottos, win_nums))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형