* 코딩인터뷰시 기업들에서 널리 활용중인 해커랭크(HackerRank)의 Python 문제 정리.
1. 문제
- 2차원 배열을 다루는 문제입니다. NxN로 구성되어있는 2차원 어레이에서 3x3 단위의 매트릭스 내의 숫자의 합 중 가장 큰 합을 반환하는 문제
- 정확히는 3x3 내의 [2,1] 위치의 벨류값과 [2,3] 위치의 벨류값을 제외한 값들의 합을 반환하는 문제입니다.
2. 정답
def hourglassSum(arr):
width = len(arr[0]) - 2
length = len(arr[1]) - 2
maxSum = -9999
for i in range(0,width):
for j in range(0,length):
sumTemp = 0
for x in range(0,3):
if x == 1:
sumTemp = sumTemp + arr[i+x][j+1]
continue
sumTemp = sumTemp + arr[i+x][j] + arr[i+x][j+1] + arr[i+x][j+2]
if maxSum <= sumTemp:
maxSum = sumTemp
return maxSum
- 주어진 전체 매트릭스를 첫 3x3부터 마지막 3x3까지 순차적으로 돌며 합을 모두 비교하는 코드를 작성했습니다.
- maxSum의 초기화를 -9999로 한 이유는 매트릭스의 모든 벨류값들이 마이너스로 구성되어있는 경우, 0으로 초기화했을 때 최대값이 적절히 출력되지 않기 때문입니다.
3. 결과
해커랭크(HackerRank)의 Python for Interview'를 풀며 정리한 글입니다.
부족한 블로그에 방문해 주셔서 감사합니다.
잘못된 내용 수정 피드백은 댓글로 적어주세요.
감사합니다 :-)
반응형
'기초 튼튼 > 코테준비' 카테고리의 다른 글
[코테준비] BOJ에서 입출력에서 readline()과 input()의 EOF 입력시 차이점 (0) | 2020.12.15 |
---|---|
[코테준비] Java에서 BufferReader와 BufferWriter 활용 입출력 (0) | 2020.09.18 |
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 3 (Jumping on the Clouds) (0) | 2020.05.22 |
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 2 (Counting Valleys) (0) | 2020.05.21 |
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 1 (Socks Merchant) (0) | 2020.05.19 |