반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 문자열 내 마음대로 정렬하기 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12915
코딩테스트 연습 - 문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱
programmers.co.kr
풀이
sorted 메서드를 클로저로 커스텀하여 문제를 해결하면 됩니다.
처음에는 엉뚱한 방법으로 꼬아서 해결을 했는데요.
마지막의 sorted만 커스텀하면 된다는 것을 깨닫고 문제를 다시 풀었습니다.
여기에서도 [index]로 글자를 빼오기 위해 Array로 바꿔 처리했습니다.
전체 코드
func solution(_ strings:[String], _ n:Int) -> [String] {
// let result = strings.sorted().map {
// (String(Array($0)[n]), $0)
// }.sorted {
// $0.0 < $1.0
// }.map {
// $0.1
// }
let result = strings.sorted {
Array($0)[n] == Array($1)[n] ? $0 < $1 : Array($0)[n] < Array($1)[n]
}
return result
}
let strings = ["sun", "bed", "car"]
let n = 1
print(solution(strings, n))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형