문제
프로그래머스 / 최댓값과 최솟값
1) 문제 풀이
func solution(_ s:String) -> String {
let str = s.split(separator: " ").map { Int($0) ?? 0 }
return "\(str.min()!) \(str.max()!)"
}
결과

2) 코드 개선
❌ 문제점
Int($0) ?? 0 => 잘못된 값 포함 가능성
min()!,max()! => 강제 언래핑 위험성
- 한 줄에 너무 많은 처리를 넣어 가독성 떨어짐
✅ 개선 포인트
compactMap을 사용하여 유효한 값만 추출
guard let을 사용하여 안정성 확보
- 중간 변수 사용으로 가독성 향상
func solution(_ s: String) -> String {
let parts = s.split(separator: " ")
let numbers = parts.compactMap { Int($0) }
guard let minVal = numbers.min(), let maxVal = numbers.max() else {
return ""
}
return "\(minVal) \(maxVal)"
}
결과
