반응형
입력 & 출력
문제는 링크에서 확인바랍니다
풀이
1. 괄호를 제거하며 집합을 구한다
2. 집합 안의 ,를 기준으로 수를 구한다
3. 구한 수를 배열에 넣는다
3.1 이미 있는 수일 경우 넣지 않는다
Swift 전체 코드
코드 가독성 개선 전
var value = s
var array : [Int] = []
value.removeFirst(2)
value.removeLast(2)
let pieces = value.components(separatedBy: "}").sorted(by: { $0.count < $1.count })
for i in value {
var text = ""
var count = 0
for j in i {
let a = Character(extendedGraphemeClusterLiteral: j)
if a.isNumber {
text.append(a)
}
if a == "," || count == i.count - 1 {
if !text.isEmpty && !array.contains(Int("\(text)")!) {
array.append(Int("\(text)")!)
break
}
text = ""
}
count += 1
}
}
코드 가독성 개선 후
var value = s
var array : [Int] = []
value.removeFirst(2)
value.removeLast(2)
value.components(separatedBy: "},{")
.map{ $0.components(separatedBy: ",").map { Int($0)!} }
.sorted(by: { $0.count < $1.count })
.forEach {
$0.forEach {
if !array.contains($0) {
array.append($0)
}
}
}
return array
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[백준] 브루트포스 - 14888번 연산자 끼워넣기 (0) | 2021.04.29 |
---|---|
[LeetCode] 841. keys and Rooms (0) | 2021.04.20 |
[백준] 14920번 3N + 1 수열 (0) | 2021.04.13 |
[LeetCode] 79. Word Search (0) | 2021.04.12 |
[백준] DP - 11726번 2xN 타일링 (0) | 2021.04.09 |