[알고리즘] 최댓값 구하기

hansol yang
1 min readApr 5, 2020

--

  • Array 에서 최댓값 또는 최댓값의 위치를 구한다.
  • 방법
  • Array 가 입력이 되면 변수 s 를 만든다. 해당 변수는 Array 를 돌며 값을 비교한 뒤 최댓값을 담는다.
  • Array 를 반복하기 위해 Array 의 length 를 구한다.
  • 반복문을 통해 Array 를 반복하고, 반복할 때의 index 를 활용해 s 와 index 위치의 값을 비교한다.
  • s 는 첫번째 값 즉, array[0] 으로 설정하여 시작하고, 해당 값보다 큰 값을 만나면 그 값으로 값을 변경한다.(swap)
  • 이런식으로 Array 전체를 반복하면 s 에 있는 값이 최댓값이 된다.
  • python
  • def find_max(a): s = a[0] n = len(a) for i in range(1, n): if s < a[i]: s = a[i] return s list = [1,2,3] result = find_max(list) print(result) # 3
  • rust
  • fn find_max(a: Vec<u32>) -> u32 { let mut s = a[0]; let n = a.len(); for i in 1..n { if s < a[i] { s = a[i]; } } return s; } fn main() { let list = [1,2,3]; let result = find_max(list.to_vec()); println!("{}", result); }
  • 최댓값의 위치, 즉 index 를 구할 때는 s 의 값을 0 으로 설정하고, a[s] < a[i] 와 같은 식으로 비교하면 된다.
  • rust 에서는 이럴 경우 return 값을 usize 로 잡아줘야 한다. isize나 usize는 주로 일부 콜렉션 타입의 색인에 사용됩니다. (rust ‘데이터 타입들’ 참조)

--

--

No responses yet