<이전글>
2020/02/03 - [파이썬 문제풀이] - [Python 문제풀이(CodeSignal) #3] 3번 문제
2020/01/18 - [파이썬 문제풀이] - [Python 문제풀이(CodeSignal) #2] 2번 문제
2020/01/13 - [파이썬 문제풀이] - [Python 문제풀이(CodeSignal) #1] 튜토리얼 & 1번 문제
2020/01/12 - [파이썬 문제풀이] - [Python 문제풀이(CodeSignal) #0] 회원가입
4번 문제
(많이...) 늦게 돌아왔지만 4번 문제입니다.
문제 배경이 바뀌었네요.
문제 설명
"정수의 배열을 고려하여 가장 큰 제품을 가진 인접 요소 쌍을 찾아 해당 제품을 반환하십시오." -by 파파고
/*
inputArray = [3, 6, -2, -5, 7, 3]의 경우 출력은
인접한 요소 제품(inputArray) = 21.
7과 3은 가장 큰 제품을 생산한다.
*/
문제와 예시를 보니 입력한 배열의 값에서 붙어있는 두 수의 곱 중에서
가장 큰 값을 반환하는 함수를 만드는 것 같네요.
또, 넣을 수 있는 요소들의 개수는 2개에서 10개,
각각의 요소들에는 -1000이상 1000이하의 값만 들어갈 수 있네요.
문제 풀이
그럼 바로 함수를 제작해 봅시다.
먼저 파이썬의 for 문을 사용하여 입력한 배열의 요소들을 하나씩 빼내어 곱하고
곱한 값이 크다면 sum에 저장하는 예시를 만들어 봅시다.
간단히 만든다면 아래처럼 되겠네요.
sum은 존재할 수 있는 최솟값이고
a는 for문으로 가져오는 n 값의 이전 값이 되어 계속해서 곱해주는 방식입니다.
이제 한번 실행해 봅시다.
실패한 예제가 있네요?
실패한 예제를 보니 배열의 요솟값 사이사이에 -값이 껴있어
-12가 최댓값이 되어야 하지만 저희가 a의 초깃값을 0으로 정하는 바람에
최댓값이 0이 되어버렸네요.
이를 위해 a를 아래처럼 초기화해 줍시다.
이렇게 초기화를 하는 이유는 a를 inputArray[0]으로 초기화를 해준다면
처음 비교할 때에 a는 inputArray[0]이 되고 n도 inputArray[0]이 되어 정상적으로 비교가 되지 않지만
a를 inputArray[1]으로 초기화를 해준다면
처음 비교할 때에 a가 inputArray[1]이 되고 n이 inputArray[0]이 되며
두 번째에도 처음 비교할 때의 n 값을 a가 가지게 되어 a = inputArray[0],
n이 inputArray[1]이 되어 정상적으로 비교가 됩니다.
혹, 이해 안 가시는 부분이 있거나 이상한 부분이 있다면 댓글란에 남겨주세요!
이제 다시 한번 실행해 봅시다.
예시들이 성공적으로 패스된 것을 확인할 수 있습니다.
이제 SUBMIT을 눌러 제출하면 끝입니다.
성공적으로 완수했습니다..!
다음번엔 5번 문제로 돌아오겠습니다.
dduckyee(떡이)의 티스토리
'파이썬 문제풀이' 카테고리의 다른 글
[Python 문제풀이(CodeSignal) #3] 3번 문제 (2) | 2020.02.03 |
---|---|
[Python 문제풀이(CodeSignal) #2] 2번 문제 (2) | 2020.01.18 |
[Python 문제풀이(CodeSignal) #1] 튜토리얼 & 1번 문제 (4) | 2020.01.13 |
[Python 문제풀이(CodeSignal) #0] 회원가입 (2) | 2020.01.12 |