강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

yokxim님의 프로필 이미지
yokxim

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

6. 격자판 최대합

2차원 리스트에서 이해가 되지 않는 부분이 있습니다.

작성

·

375

0

제가 Section 3에서 격자판 회문수까지 동영상을 보고 있던 도중에, 문득 이해가 되지 않는 부분이 생겼습니다.

2차원 리스트의 개념을 볼 때, list[i][j]의 행태로 각각의 요소값들을 추출할수 있습니다. 예를 들어서 a라는 이름의 리스트가 있다고 할 때

a = [[1,2,3], [4, 5, 6], [7, 8, 9]]를 for x in a: print(x)로 결과를 보면

의 형태가 되면서, 꼭 x와 y를 쓰는 함수의 형태와 비슷해지는데

여기서 a[1][2]의 값은 6입니다.즉 i는 몇 번째 줄인지를 나타내고 j는 줄 i에서 몇번째로 오른쪽에 있는 값을 나타내는 것임으로써 저는 항상 i는 함수에서의 y값(세로), j는 함수에서의 x값(가로)과 비슷하게 생각했었는데 동영상을 보면서 확인을 해보니 교수님이 설명을 해주실때는 i와 j가 아래와 같이 반대인 것처럼 보였습니다. 마치

이런 느낌이어서 어떻게 이해를 해야 하나 싶습니다. 

이렇게 보면 a[1][1]값과 a[1][2]값을 비교하면 j가 달라지는데 실제로 5와 6은 바로 옆에 있어서 제 생각으로는 j가 위아래 델타값이 아닌 좌우 델타값이 되어야 한다고 생각했습니다. 

2차원 리스트에 관한 내용중 대부분 설명을 제가 생각했던거와는 달랐는데, 코드를 좀 난잡하게 짜서 교수님은 어떻게 간단하게 하셨을까 하면서 영상을 보면 항상 더 머리가 복잡해 지는것 같습니다.

제가 이차원 리스트를 너무 함수그래프처럼 생각해서 이해가 잘 되지 않는 것일까요? 어떤 방법으로 이걸 이해해야 할지 감이 잘 잡히지 않습니다..

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

이차원 리스트를 너무 x축과 y축이 있는 함수 좌표처럼 생각하기 보다는 그냥 2차원 행렬 또는 표처럼 생각하고 접근하면 좋을 것 같습니다. 

위의 그림처럼 a[행번호][열번호] 로 생각하고 코드를 구현하면 좋을 것 같습니다.

행번호 변수와 열번호 변수는 자기가 선호하는 이름으로 하면 됩니다. 저는 행번호는 i,  열번호는 j를 많이 쓰지만 상황에 따라 둘을 바꿀 수도 있고 다른 변수를 쓰기도 합니다.

yokxim님의 프로필 이미지
yokxim

작성한 질문수

질문하기