반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스(Lv.1) - 자연수 뒤집어 배열로 만들기 문제를 풀었습니다.
목차
Github
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12932
풀이
input Int를 String으로 바꿔 뒤집어서 각 원소를 다시 Int로 바꾸면 됩니다.
이 문제를 통해 compactMap이라는 것을 알게 되었습니다.
compactMap은 1차원 배열에서 각 원소를 옵셔널 바인딩을 통해 nil을 제거합니다.
따라서 이번 문제에서 사용하면 아래와 같은 차이가 있습니다.
map을 이용한 풀이
return String(n).reversed().map { Int(String($0))! }
map은 Int로 변환할 때 nil이 생길 수 있기 때문에 직접 옵셔널 바인딩 또는 강제 언래핑을 해줘야 합니다.
compactMap을 이용한 풀이
return String(n).reversed().compactMap { Int(String($0)) }
compactMap은 옵셔널 바인딩을 해주기 때문에 변환만 해주면 됩니다.
전체 코드
func solution(_ n:Int64) -> [Int] {
// return String(n).reversed().map { Int(String($0))! }
return String(n).reversed().compactMap { Int(String($0)) }
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형