인프런 커뮤니티 질문&답변
2차원 리스트 슬라이싱 활용에 대한 질문
해결된 질문
작성
·
267
1
강사님의 훌륭한 컨텐츠 덕분에 알고리즘 실력이 쑥쑥 늘고 있는 것을 느끼고 있습니다. 감사합니다.
본 문제를 2차원 리스트의 슬라이싱을 활용하여 접근하였습니다. 그런데 이해할 수 없는 오류가 계속 발생하고 있습니다. 이에 대한 해결방안을 얻을 수 있을까하여 질문으로 남깁니다.
코드는 아래와 같습니다.
import sys
sys.stdin = open("input", "rt")
N = int(input())
inList = [list(map(int, input().split())) for _ in range(N)]
t = 0
rst = 0
for i in range(N):
rst = sum(inList[i:(N//2-t), i:(N//2+t+1)])
if t < N//2:
t += 1
else:
t -= 1
print(rst)
답변 1
0
김태원
지식공유자
input.txt여기서도 에러가 나지 않나 싶습니다.
2차원 리스트를 슬라이싱할 때는 행번호와 열번호를 해주어야 2차원 리스트 접근이 되는 것입니다.
inList[행번호][슬라이싱할 열 구간] 이렇게 해야 합니다. 예로 inList[i][(N//2-t):(n//2+t+1] 이런식으로 2차원 리스트의 각 행을 슬라이싱 하는 것입니다.
그리고 if t<N//2: 도 t가 아니라 i로 해야 할 것 같습니다.





