프로그래머스 - 문자열 겹쳐쓰기
·
Algorithm/programmers
prefix 란 특정 개수까지의 값을 자를 수 있습니다. - 예를들어 [11.22.33.44.55] 에서 2를 입력하게 된다면 앞에서 2개까지를 자릅니다.dropFirst 란 prefix와 비슷하게 특정 원소(Int로 지정) 이후의 값을 잘라냅니다.- 예를들어 [11.22.33.44.55] 에서 2를 입력하게 된다면 앞에서 2개 이후의 값들을 자릅니다. func solution(_ my_string: String, _ overwrite_string: String, _ s: Int) -> String { // my_string을 인덱스 s에서 나누어 앞부분과 뒷부분으로 분리 let start = my_string.prefix(s) let end = my_string.dropFirst(s +..
프로그래머스 - 정사각형으로 만들기
·
Algorithm/programmers
func solution(_ arr:[[Int]]) -> [[Int]] { var newArr = arr let maximum = max(arr.map { $0.count }.max()!, arr.count) for i in 0.. i { while newArr[i].count != maximum { // 행이 열보다 많을 때 newArr[i].append(0) } } else { var tmpArr: [Int] = Array(repeating: 0, count: maximum) newArr.append(tmpArr) } } return ne..
프로그래머스 - 배열 만들기2, feat.코드 성능 확인하는 법
·
Algorithm/programmers
이런 코드를 만들 수도 있다는 것을 알 수 있었습니다.description 의 allSatisfy 를 사용한다면 String에서 각각의 Character 를 비교하여 모든 조건을 만족하는 값을 추출해낼 수 있습니다.func solution(_ l:Int, _ r:Int) -> [Int] { return (l...r).filter { $0.description.allSatisfy { $0 == "0" || $0 == "5" } } == [] ? [-1] : (l...r).filter { $0.description.allSatisfy { $0 == "0" || $0 == "5" } }} 성능은 이것이 더 뛰어나다는 것 또한 확인하였습니다.func solution(_ l:Int, _ r:Int) -> [..
프로그래머스 - 배열 만들기 1
·
Algorithm/programmers
stride 를 사용하면 for문을 사용하는 대신 코드를 좀 더 간결하게 만들 수 있습니다.stride는 by를 사용하여 원하는 숫자만큼 즉 기존값 += k 으로 값을 증가시킬 수 있습니다.import Foundationfunc solution(_ n:Int, _ k:Int) -> [Int] { return Array(stride(from: k, to: n+1, by: k))} Array 를 사용하는 대신 map를 사용하여 배열을 만드는 방법도 있습니다.func solution(_ n:Int, _ k:Int) -> [Int] { return stride(from: k, to: n+1, by: k).map { $0 }}
프로그래머스 - 부분 문자열
·
Algorithm/programmers
문자열 내부에 특정 문자열이 존재하는지 확인하려면 contains 를 사용하면 쉽게 해결할 수 있습니다.import Foundationfunc solution(_ str1:String, _ str2:String) -> Int { return str2.contains(str1) ? 1 : 0}
ytw_developer
'Algorithm/programmers' 카테고리의 글 목록 (10 Page)