-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
๐ฌย ๋ฌธ์
https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/
๐ฌย Idea
- N ์ ์์ ๋ฐฐ์ด A๊ฐ ์ฃผ์ด์ง๋ฉด A์์ ๋ฐ์ํ์ง ์๋ ๊ฐ์ฅ ์์ ์์ ์ ์(0๋ณด๋ค ํผ)๋ฅผ ๋ฐํํด์ผ ํ๋ฏ๋ก
- ์ฐ์ A๋ฅผ ์ ๋ ฌํ ๋ค A์์ 1๋ณด๋ค ์์ ์๋ฅผ ๋ชจ๋ ํํฐ๋งํด์ฃผ์๋ค.
- ์ดํ ๊ฒฐ๊ณผ๊ฐ ๋น ๋ฐฐ์ด์ด๋ผ๋ฉด 1์ ๋ฆฌํดํ์ฌ ๋นจ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ์ ๋์ถํด์ฃผ์๊ณ , ๊ทธ๋ ์ง ์๋ค๋ฉด for๋ฌธ์ ๋๋ฉฐ preInteger(์ด์ ์ ์ ๊ฐ)์ ์ ๋ ฌ๋ ์์์ ๊ฐ์ ๋น๊ตํ๋ฉฐ ๊ทธ ์ฐจ์ด๊ฐ 1 ์ด๊ณผ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์์ ์์ ์ ์๋ฅผ ๋์ถํ๊ธฐ ์ํด preInteger + 1 ์ ๋ฆฌํดํด์ฃผ์๋ค.
- ๋ง์ฝ for๋ฌธ์ ๋ค ๋๊ณ ๋ ๊ฐ์ฅ ์์ ์ ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๋ฉด 1 ์ด์์ ๋ชจ๋ ์์๊ฐ ์ฑ์์ ธ์๋ ๊ฒ์ด๋ฏ๋ก Set(A)์ ๊ฐ์ + 1์ ํด์ ๊ทธ ๋ค์์ผ๋ก ์์ ์๋ฅผ ๋ฆฌํดํด์ฃผ์๋ค.
๐ฌย ํ์ด
import Foundation
public func solution(A : inout [Int]) -> Int {
A = A.sorted()
A = A.filter({ $0 >= 1 })
if A.isEmpty { return 1 }
var preInteger = 0
for i in A {
if i - preInteger > 1 {
return preInteger + 1
} else {
preInteger = i
}
}
return Set(A).count + 1
}
์์์๊ฐ
: 16๋ถ
์๊ฐ ๋ณต์ก๋
: O(N) or O(N * log(N))
ํ๊ฐํ
: https://app.codility.com/demo/results/trainingK7RBSR-4DF/