Algorithm Find maximum value with given formula

알고리듬 Find maximum value with given formula를 알아보겠습니다.


배열 arr[]이 주어지고 배열의 index i, j 가 있을 때, 다음 주어진 공식을 사용해서 최대가 되는 값을 구해봅시다.




i에 있는 값과 j에 있는 값을 뺀 절댓값과 i - 2의 절댓값을 더한 값이 최대가 되어야 합니다.

이렇게 수식이 주어진 문제는 수식을 간단하게 만드는 것으로 쉽게 해결 수 있습니다.


절댓값을 풀어줍시다.

이런 경우의 수로 4 가지 경우가 나옵니다.








i와 arr[i]는 같이 변화하기 때문에 i끼리 묶어줍니다.







두 수의 뺄셈 관계는 반비례 관계라서 가장 큰 값이 나오려면 a가 가장 크고, b가 가장 작아야 합니다.






이것을 코드에 잘 녹여주면 됩니다.

lagrest에는 작은 값으로, smallest에는 큰 값으로 초기화합니다.

largest, smallest 세트마다 하나의 경우의 수를 대입하여 실행하고 마지막에 가장 큰 값을 반환하면 됩니다.







위의 경우, 12와 -8을 선택한 게 커 보이지만

12 - (-8) + 3 - 2 = 21

-8과 9를 선택한 게 더 큽니다.

9 - (-8) + 8 - 2 = 23



끝.


카테고리: Algorithm

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

Android Compose Coil library

KiCad 시작하기 1 (회로도 만들기)

Forensics .pyc 파일 .py로 복구하기

Android Notification with Full Screen

iOS Swift callAsFunction

iOS Error Undefined symbol Testing.Trait

황전 휴게소(순천 방향) 추천 메뉴

Android Compose automation for getting localized images to use on Play Store app image