프로그래머스- 15

김정현·2023년 3월 28일
0

프로그래머스

목록 보기
15/46

우선 필터 구문이 떠올랐다. 그리고 새로운 배열을 생성한 뒤, 필터로 숫자만 걸러내어 오름차순을 정리하려고 했다. 우선 오름차순으로 정리하는것은 간단하니 필터 먼저 적용해보았는데..

[String]을 [Int]로 바꿔도 안되고 그냥 안됐다. return 뒤에 배열을 Int형으로 바꿔주는것도 안되는것 같다. 그렇게 1시간 넘게 헤맸으나 답을 찾지 못했다.
그리고 답을 확인해봤다.

우선 filter와 map을 사용한 풀이.
근접하게 까진 갔었는데,

Int(String($0))! 

이 구문을 몰라서 사용하지 못했다. 문맥으로 추측건데, 아마 모든 String요소를 Int로 전환하는 형태인 것 같다.
우선 필터로 숫자만 걸러낸뒤 .을 이용해 map을 이어서 사용하여 Int요소들로 변경하여 Int 배열로 변환하고 정렬했다.

그 다음은 cmpactMap 활용 구문이다.
애플 공식문서에서

let possibleNumbers = ["1", "2", "three", "///4///", "5"]

let mapped: [Int?] = possibleNumbers.map { str in Int(str) }
// [1, 2, nil, nil, 5]

let compactMapped: [Int] = possibleNumbers.compactMap { str in Int(str) }
// [1, 2, 5]

이렇게 설명했는데 저렇게 실행했을때는 되지 않았다.

Int(String($0))! 

이걸 그냥 암기해야할것같다. String요소를 Int요소로 바꿔주는 키워드라고

0개의 댓글