티스토리 뷰
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 = [Int: Bool]() 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 |
댓글