Rust - 배열의 최소, 최대 값 찾기 (min, max)

러스트에서 배열의 요소들 중에 최소 값과 최대 값을 찾는 방법을 소개합니다.

1. min(), max()를 이용한 방법

iterator의 min(), max()는 요소들 중에 최소 값과 최대 값을 찾아서 Option 타입으로 리턴합니다.

아래와 같이 match문을 사용하여 Option에 저장된 min, max 값을 가져올 수 있습니다.

fn main() {
    let arr = [4, 5, 9, 2, 8, 7, 3, 1, 6];
    let min = arr.iter().min();
    let max = arr.iter().max();
    match (min, max) {
        (Some(min_val), Some(max_val)) => println!("min: {}, max: {}", min_val, max_val),
        _ => println!("Array is empty"),
    }
}

Output:

min: 1, max: 9

2. fold()를 이용한 방법

fold()를 사용하여 아래와 같이 배열의 모든 요소들을 순회하면서, 최소 값과 최대 값을 계산하여 min_val, max_val에 저장하고 마지막에 min, max 변수로 리턴합니다.

fn main() {
    let arr = [4, 5, 9, 2, 8, 7, 3, 1, 6];
    let (min, max) = arr.iter().fold((arr[0], arr[0]), |(min_val, max_val), &val| (min_val.min(val), max_val.max(val)));
    println!("min: {}, max: {}", min, max);
}

Output:

min: 1, max: 9
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha