Algorithm / 최댓값과 최솟값

알고리즘 코드카타

목록 보기
28/59

문제

프로그래머스 / 최댓값과 최솟값

1) 문제 풀이

func solution(_ s:String) -> String {
    let str = s.split(separator: " ").map { Int($0) ?? 0 }
    return "\(str.min()!) \(str.max()!)"
}

결과

2) 코드 개선

❌ 문제점

  1. Int($0) ?? 0 => 잘못된 값 포함 가능성
  2. min()!,max()! => 강제 언래핑 위험성
  3. 한 줄에 너무 많은 처리를 넣어 가독성 떨어짐

✅ 개선 포인트

  1. compactMap을 사용하여 유효한 값만 추출
  2. guard let을 사용하여 안정성 확보
  3. 중간 변수 사용으로 가독성 향상
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)"
}

결과

profile
이유있는 코드를 쓰자!!

0개의 댓글