반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 "Codility - PermMissingElem" 문제를 풀었습니다.
Github
문제 링크
https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/
풀이
이번 문제는 [Int]가 input 될 때 빠진 정수를 찾는 문제입니다.
이번 문제를 풀며 Codility에 대해 이해한 것 같습니다.
처음에는 아래 코드처럼 작성했는데요.
while count == a[count-1] { ... } 처럼 작성한다면 코드가 더 짧아지지 않을까? 라는 생각을 했습니다.
하지만 Codility의 테스트 케이스는 아주 다양했습니다.
단순히 봐도 비어 있는 배열일 때 a[count-1]은 런타임 에러가 발생하죠.. ㅠㅠ
따라서 여러 케이스에 대해 고려가 되는 아래 코드를 그대로 사용한 것이죠 ㅎㅎ;;
코딜리티가 생각보다 까다롭게 봐줘서 방어 코드를 작성하는 연습이 가능한 것 같네요.
전체 코드
더보기
import Foundation
public func solution(_ A : inout [Int]) -> Int {
// write your code in Swift 4.2.1 (Linux)
let a = A.sorted()
var count = 1
for num in a {
if count != num {
break
}
count += 1
}
return count
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형