문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12915
문제 요약
문자열로 구성된 리스트 stirngs와 정수 n이 주어졌을 때,
각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬.
(인덱스 n의 문자가 같은 문자열이 여럿 일 경우, 사전 순으로 앞선 문자열이 앞쪽에 위치.)
코드
func solution(_ strings:[String], _ n:Int) -> [String] {
let sortedArr = strings.sorted { (front, behind) -> Bool in
let frontIndex = front.index(front.startIndex, offsetBy: n)
let behindIndex = behind.index(behind.startIndex, offsetBy: n)
if front[frontIndex] == behind[behindIndex] {
return front < behind
}
return front[frontIndex] < behind[behindIndex]
}
return sortedArr
}
solution4(["sun", "bed", "car"], 1) == ["car", "bed", "sun"] // true
solution4(["abce", "abcd", "cdx"], 2) == ["abcd", "abce", "cdx"] // true
틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요!
🌈댓글은 언제나 환영입니다🙏🏻
반응형
'CodingTest 문제풀이' 카테고리의 다른 글
[프로그래머스 L2] 영어끝말잇기 - swift (0) | 2021.09.27 |
---|---|
[프로그래머스 L2] 스킬트리 - swift (0) | 2021.09.03 |
[프로그래머스 L1] 문자열 내림차순으로 배치하기 - swift (2) | 2021.08.20 |
[프로그래머스 L1] 문자열 다루기 기본 - swift (0) | 2021.08.20 |
[프로그래머스 L1] 문자열을 정수로 바꾸기 - swift (0) | 2021.08.20 |