시간초과 코드
- 데이터를 입력받을 때마다 해당 값이 존재하는지 확인 후 중복을 없애는 일은 시간초과를 일으킵니다.
var arr:[String] = []
let num = Int(readLine()!)!
for _ in 1...num {
let tmp = readLine()!
if !arr.contains(where: { $0 == tmp}) { arr.append(tmp) }
}
arr = arr.sorted(by: { s1, s2 in
if s1.count == s2.count {
return s1 < s2
} else {
return s1.count < s2.count
}
})
for i in arr {
print(i)
}
시간초과 해결 코드
- 그렇기 때문에 시간초과 문제를 해결하기 위해서는 Set 자료형을 사용하여 문제를 해결할 수 있겠습니다.
- 이후 길이가 같으면 해당 값을 가지고 비교하여 정렬하고
- 길이가 같지 않으면 길이가 짧은 순서에서 긴 순서로 정렬합니다
var arr:Set<String> = []
let num = Int(readLine()!)!
for _ in 1...num {
arr.insert(readLine()!)
}
let newArr = arr.sorted { s1, s2 in
if s1.count == s2.count {
return s1 < s2
} else {
return s1.count < s2.count
}
}
for i in newArr {
print(i)
}
'Algorithm > Baekjoon' 카테고리의 다른 글
Swift 백준 1654 랜선 자르기 (이분탐색) (0) | 2024.08.03 |
---|---|
Swift 백준 1546 평균 (0) | 2024.07.23 |
Swift 백준 1259 팰린드롬수 (reversed) (0) | 2024.07.21 |
Swift 백준 10250 ACM 호텔 (0) | 2024.07.19 |
swift 백준 11654, 2744, 2754, 27866, 9086 (문자열) (0) | 2024.07.16 |