본문 바로가기



프로그래밍/프로그래밍

프로그래밍과 인덱스 0

프로그래밍을 배울때 가장 중요한점 중 하나가 바로 인덱스가 0부터 시작한다는 개념이라고 생각합니다. 일부 강의나 강좌의 경우에 1을 기준점으로 삼는 경우가 있는데, 특히 초보일때 이렇게 배우면 정말 헷갈립니다. 특히 머리 좋은분들의 강의가 이런 경우가 꽤 있는데 그 분들은 머리속에서 숫자에 대한 연산에 강해서 별 대수롭지 않게 생각하기 때문에 지나가버려서 일반인들은 그 강좌를 따라하면 점점 머리가 꼬이게 됩니다.  왜냐하면 일반적인 연산이나 String처리시에는 1부터 세어도 문제가 없지만, for 문같은 문법으로 들어가면 N-1,N+1구간이 생기는데 이것을 처리할때 0으로 하지 않고 1로 해본다고 합시다. 그러면 내부적인 i값이 N-1 일경우는 0 N+1일 경우는 2가 됩니다. 뭔가 인식하기에 중간값이 0이 아니게 되는겁니다. 실제 내부적으로는 1이 중간값이지만 일반적인 인간의 인식적으로 그렇다는 이야기죠. 0을 기본값으로 두면 -1과 +1로 누구나 이전값이 0이라는것을 직관적으로 알 수 있습니다.  수식으로 표현하면 1을 기본값으로 두면 1 ≤ i < N+1 이 되는데, 0으로 기본값을 두면 0 ≤ i < N이 된다는것입니다.  수식으로 보면 수학에 관심이 없으신 분도 +1이 따로 붙어있는것보단 없는것이 더 보기에 갈끔하다는것을 아실 수 있습니다.

자세한 내용이 궁금하신분은 다음 링크를 참조해 보시면 좋습니다. 

코코넛냠냠 :: 0부터 시작하는 이유와 마지막 수를 인덱스로 포함하지 않는 이유 (tistory.com)

 

0부터 시작하는 이유와 마지막 수를 인덱스로 포함하지 않는 이유

"Why numbering should start at zero" 1. 인덱스 넘버링 보통 프로그래밍 언어에는 자료구조로 사상되는 어떤 집합을 순회하면서 그 집합에서 꺼내온 원소를 가지고 정해진 연산을 차례대로 수행하기 위

nanite.tistory.com

읽어보면 집합론관련이야기도 나오는데 상당히 흥미로운 장문의 좋은글입니다. 정독을 권합니다.