level : easy
Question:
Given an array of integers, find the pair of adjacent elements that has the largest product and return that product.
Example:
For inputArray = [3, 6, -2, -5, 7, 3],
the output should be. adjacentElementsProduct(inputArray) = 21.
7 and 3 produce the largest product.
My answer:
def adjacentElementsProduct(inputArray):
return max(a * b for a, b in zip(inputArray[:-1], inputArray[1:]))
- [1,2,3,4,5,6]이 inputArray라면, inputArray[:-1] 은 [1,2,3,4,5], inputArray[1:] 은 [2.3.4.5.6]
- zip함수를 사용해 [(1,2),(2,3),(3,4),(4,5),(5,6)] 으로 만들어줌
- max함수 사용
reference code:
def adjacentElementsProduct(inputArray):
return max([inputArray[i] * inputArray[i+1] for i in range(len(inputArray)-1)])
- 인덱스를 사용해서 inputArray의 0번째부터 마지막 전 원소까지 돌면서 자신과 자기 뒤에 있는 원소의 곱을 탐색
- max함수 사용 (동일)
'Computer Science > 알고리즘 문제풀이' 카테고리의 다른 글
[codesignal][python] 6. matirxElementsSum (0) | 2020.12.26 |
---|---|
[codesignal][python] 5. almostIncreasingSequence (0) | 2020.12.26 |
[codesignal][python] 4. Make Array Consecutive 2BACK (0) | 2020.12.26 |
[codesignal][python] 3. shapeArea (0) | 2020.12.26 |
[codesignal][python] 2. CheckPalindrome(회문) (0) | 2020.12.26 |