티스토리 뷰

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
let input = Int(readLine()!)!
let inputs = (readLine()?.split(separator: " ").map { Int($0)! })!
var count = 0
var temp = 0
var stickerDic = [IntBool]()
for i in 0..<input{
    stickerDic[i] = false
}
for i in 0..<inputs.count{
    let index = inputs[i] - 1
    if(!stickerDic[index]!) {
        stickerDic[index] = true
        temp += 1
    } else {
        stickerDic.removeValue(forKey: index)
        temp -= 1
    }
    if(temp > count){
        count = temp
    }
    if(stickerDic.count == 0){
        break
    }
}
print(count)
 
cs



시간 초과를 다섯 번이나 내고 맞혔다.



처음엔 배열로 풀었는데 N이 커서 시간초과가 나는 것 같아 딕셔너리를 사용하였고


그래도 해결이 되지 않아 temp를 세는 부분에서 생각을 바꾸어 위와 같은 코드를 작성하니 풀렸다.

'Algorithm > Baekjoon Online Judge' 카테고리의 다른 글

14647번 '준오는 조류혐오야!!'  (0) 2018.02.27
14648번 '쿼리 맛보기'  (0) 2018.02.27
14645번 '와이버스 부릉부릉'  (0) 2018.02.27
9012번 '괄호'  (0) 2018.02.23
10828번 '스택'  (0) 2018.02.23
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
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
글 보관함