카테고리 없음
[Swift 알고리즘] Codility lesson3 - PermMissingElem
코코종
2022. 10. 30. 22:17
728x90
안녕하세요 코코종입니다.
쉬운 문제를 연달아 푸니까 자신감도 생기고 좋네여! ㅋㅋㅋ
이번 문제는 주어진 [Int]가 1 ~ N+1 의 원소를 가지는데 딱 하나의 원소가 빠져있고 그 원소를 찾는 문제였습니다.
단순하게 생각한다면 배열을 받아서 해당 배열의 크기만큼 하나씩 보고 어떤게 빠졌는지 체크하는것 이겠지만!!
주제를 생각해야겠죠?
import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
let a = A.count + 1
var sum = a * (a + 1) / 2
A.forEach {
sum -= $0
}
return sum
}
시간 복잡도의 제일 많이 예시로 나오는 1~n 까지의 모든 수의 합을 구하는 방법을 이용했습니다.
옛~~날에 문제적 남자인가에서 비슷한 문제가 나온적이 있는게 기억납니다. (뭐 1~1000? 사이에 한개를 빼놓고 불러주는데 필기를 하지 않고 빠진 숫자를 알아내는 방법)
n * (n + 1) / 2 는 은근히 정말 많이 쓰이니까 까묵지 마세요!
728x90