

이 문제는 리스트를 입력받은뒤 리스트에있는 인접한 요소들의 곱중에 최대값을 반환하는 문제입니다.
아래는 제가 푼 코드입니다.
def adjacentElementsProduct(inputArray):
sumlist=[(inputArray[i]*inputArray[i+1]) for i in range(len(inputArray)-1) ]
return max(sumlist)
리스트 컴프리헨션을 이용해 인접한 요소들의 곱셈을 모아둔 sumlist를 만들고,
max함수를 이용해 이들중 최대값을 출력하는 코드입니다.
전 가독성 때문에 나눠썼지만 가독성보다 코드 길이가 중요하다면
sumlist를 만드는것을 max함수와 분리하지 않고,
return max([(inputArray[i]*inputArray[i+1]) for i in range(len(inputArray)-1) ] )
이렇게 한줄에 이어써도 문제는 없습니다.
'알고리즘 > CodeSignal' 카테고리의 다른 글
| CodeSignal 8번 matrixElementsSum문제풀이 (0) | 2020.01.17 |
|---|---|
| CodeSignal 7번 almostIncreasingSequence 문제풀이 (0) | 2020.01.11 |
| CodeSignal 6번 makeArrayConsecutive2 문제풀이 (0) | 2020.01.11 |
| CodeSignal 5번 shapeArea 문제풀이 (0) | 2020.01.07 |
| CodeSignal 1번~3번 문제풀이 (0) | 2020.01.07 |