반응형
코딩테스트 준비 중입니다... 제발 과제형으로 내주시면 좋겠네요 진짜..ㅠㅠㅠ 아니면 라이브 코딩이나..
String 갯수만큼 잘라서 배열로 받는 부분입니다. 전에 본 기억이 있어서 참고했습니다.
해당 문제를 푸시다 보면
(signal: illegal instruction (core dumped))
에러가 발생 할 수 있습니다(5번 테스트 케이스)
input String이 "a"이고, result가 1인 테스트 케이스를 넣으시면 어디서 발생하는지 아실 수 있습니다..
import Foundation
func solution(_ s:String) -> Int { // test 5의 값이 "a", 1이다. 주의할 것
var length = Int(floor(Double(s.count) / 2))
length = (length == 0 ? 1 : length)
var lessSize : Int = s.count
for i in 1 ... length {
var returnStr = ""
var tempStr = ""
var tempStrCount: Int = 1
let splitStrs = s.components(maxLength: i)
for j in 0 ..< splitStrs.count {
if splitStrs[j] == tempStr {
tempStrCount += 1
}else{
returnStr += (tempStrCount != 1 ? "\(tempStrCount)" : "") + "\(tempStr)"
tempStr = splitStrs[j]
tempStrCount = 1
}
if j == splitStrs.count - 1 {
returnStr += (tempStrCount != 1 ? "\(tempStrCount)" : "") + "\(tempStr)"
}
}
if lessSize > returnStr.count {
lessSize = returnStr.count
}
}
return lessSize
}
extension String {
func components(maxLength length: Int) -> [String] {
return stride(from: 0, to: self.count, by: length).map {
let start = self.index(self.startIndex, offsetBy: $0)
let end = self.index(start, offsetBy: length, limitedBy: self.endIndex) ?? self.endIndex
return String(self[start..<end])
}
}
}
정리는 다음에... 몇일동안 풀고 정리하는 것만 반복해야할 것 같아서요ㅠㅠ
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[Codility] Lesson3 - PermMissingElem (0) | 2021.04.21 |
---|---|
[Codility] Lesson2 - Arrays(OddOccurrencesInArray) (0) | 2021.04.21 |
[Programmers] 코딩테스트 (DFS/BFS) - 타겟 넘버 (0) | 2021.02.19 |
[Programmers] 2021 KAKAO BLIND RECRUITMENT - 메뉴 리뉴얼 (0) | 2021.02.18 |
알고리즘 연습 사이트 (0) | 2020.10.30 |