러스트에서 배열의 요소들 중에 최소 값과 최대 값을 찾는 방법을 소개합니다.
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: 92. 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: 9Loading script...
Related Posts
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - Float를 String으로 변환
- Rust - Integer를 String으로 변환
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - 배열을 HashSet으로 변환
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환