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 OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

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

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)