설계
정해진 규칙 함수화
배열 sort하여 반환
git : 문자열 내 마음대로 정렬하기
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12915?language=swift
문제 풀이
정해진 index에 대해 값을 비교하며, 같은 경우 원본 String을 사전순 비교하는 sortByRule 함수 작성
sorted를 활용해 주어진 규칙에 정렬하여 반환
import Foundation
func solution(_ strings:[String], _ n:Int) -> [String] {
return strings.sorted{ front, back in
return sortByRule(front, back, n)
}
}
func sortByRule(_ firstString: String, _ secondsString: String, _ index: Int) -> Bool {
let firstIndexString = String(Array(firstString)[index])
let secondsIndexString = String(Array(secondsString)[index])
if(firstIndexString == secondsIndexString) {
return firstString < secondsString
}
else {
return firstIndexString < secondsIndexString
}
}
다른 사람 풀이 분석
프로그래머스 - 전대식 , 김지훈 , 천수빈 외 42 명
func solution(_ strings:[String], _ n:Int) -> [String] {
return strings.sorted{ Array($0)[n] == Array($1)[n] ? $0 < $1 : Array($0)[n] < Array($1)[n] }
}
∙ 정해진 규칙을 sorted 내부 클로져에서 구현하여 전달
∙ ? , : 구문의 활용
정리
∙ 문제를 잘 읽어 주어진 조건에 알맞게 구현을 하자!
'알고리즘 & 문제풀이' 카테고리의 다른 글
자료구조 (0) | 2023.02.03 |
---|---|
코딩 기술 - Comparable (0) | 2023.02.03 |
프로그래머스 - L1 최대공약수와 최소공배수 (0) | 2023.01.31 |
프로그래머스 - L1 문자열 내 p와 y의 개수 (0) | 2023.01.30 |
Stack - 자료구조 (0) | 2023.01.30 |