줄 세워 담기, 배열과 리스트
여러 물건을 차곡차곡 담아 두는 방법은 한 가지가 아니에요. 칸을 번호 순서대로 딱 붙여 두면 번호만 대고 바로 꺼낼 수 있어요. 대신 칸을 여기저기 흩어 두고 다음 칸 주소만 쪽지로 이어 두면, 중간에 새 칸을 끼워 넣기가 쉬워요. 빠르게 꺼내기와 쉽게 끼워 넣기, 둘 중 무엇을 고를까요?
붙어 있는 사물함, 배열
앞에서 그릇마다
모양이 다르다고 배웠어요.
그중 가장 단순한 모양이 배열이에요.
번호가 붙은 칸들을
한 줄로 딱 붙여 놓은 사물함이죠.
0번, 1번, 2번처럼
칸마다 번호가 매겨져 있어요.
칸이 모두 붙어 있으니
번호만 알면 어디 있는지 바로 알아요.
번호를 눌러 그 칸으로 바로 점프해봐요. 칸들이 붙어 있어 번호로 곧장 찾아요.
번호를 누르자
곧바로 그 칸이 빛났죠.
칸들이 나란히 붙어 있으니
몇 번 칸이든 단번에 짚어요.
이렇게 번호로 바로 꺼내는 걸
빠른 접근이라고 해요.
배열의 가장 큰 장점이죠.
그런데 칸을 꼭 붙여 두어야만 할까요?
흩어 둬도 되지 않을까요?
흩어진 사물함, 리스트
리스트는 칸을 붙이지 않아요.
칸들이 여기저기 흩어져 있죠.
그럼 어떻게 순서를 이을까요?
칸마다 쪽지를 한 장씩 붙여요.
그 쪽지엔
다음 칸이 어디 있는지 주소가 적혀 있어요.
그래서 첫 칸에서 쪽지를 보고
다음 칸으로, 또 그 쪽지를 보고
그다음 칸으로 따라가요.
쪽지를 눌러 다음 칸으로 따라가봐요. 칸은 흩어져 있어도 쪽지가 순서를 이어요.
쪽지를 따라가니
흩어진 칸들이 한 줄로 이어졌죠.
번호로 바로 가는 배열과 달리
리스트는 쪽지를 보고
한 칸씩 차례로 가야 해요.
조금 번거로워 보이지만
이 흩어진 구조가
뜻밖의 장점을 줘요.
그게 무엇인지는 곧 보게 될 거예요.
빠른 접근 vs 느린 접근
이제 둘을 견줘 봐요.
5번째 칸을 꺼내고 싶어요.
배열은 번호만 대면 끝이에요.
칸이 붙어 있어 단번에 점프하죠.
리스트는 그럴 수 없어요.
첫 칸부터 쪽지를 따라
한 칸, 두 칸, 세 칸
차례로 세며 가야 해요.
그래서 멀수록 더 오래 걸려요.
5번째를 꺼내봐요. 배열은 한 번에, 리스트는 처음부터 한 칸씩. 클릭 수를 비교해봐요.
차이가 또렷하죠.
배열은 한 번 눌러 바로,
리스트는 여러 번 눌러 겨우 도착했어요.
번호로 바로 가는 배열이
꺼내는 일엔 훨씬 빨라요.
그럼 배열이 무조건 좋은 걸까요?
아니에요. 다음 장면을 보면
리스트가 빛나는 순간이 와요.
중간에 무언가를 끼워 넣을 때예요.
중간에 끼워 넣기
이번엔 줄 한가운데에
새 칸을 끼워 넣어 볼게요.
리스트는 아주 쉬워요.
앞 칸의 쪽지가 가리키는 곳을
새 칸으로 바꾸고,
새 칸의 쪽지가
원래 다음 칸을 가리키게만 하면 돼요.
쪽지 두 장만 고쳐 끼우면
나머지 칸은 그대로 둬도 끝나요.
가운데에 새 칸을 끼워봐요. 리스트는 쪽지 두 장만, 배열은 뒤 칸을 다 밀어요. 손이 얼마나 가나 비교해봐요.
배열은 어땠나요?
중간에 자리를 내려면
뒤 칸을 하나씩 다 밀어야 했죠.
칸이 붙어 있어 빈자리가 없으니까요.
리스트는 쪽지 두 장으로 끝났고요.
그래서 중간에 자주 끼워 넣는 일엔
리스트가 훨씬 편해요.
빠른 접근은 배열,
쉬운 삽입은 리스트.
둘은 서로를 맞바꾼 사이예요.
정리해볼까요
한 줄로 모으면 이래요.
배열은 번호 붙은 붙은 사물함,
번호로 바로 꺼내 빠른 접근.
리스트는 흩어진 사물함에
다음 칸 주소 쪽지를 단 것,
중간 삽입이 쉬워요.
5번째를 꺼낼 땐 배열이 빠르고,
중간에 끼울 땐 리스트가 편해요.
무엇을 자주 하느냐로 골라요.
핵심을 차례로 눌러 되짚어봐요. (붙은 사물함 배열 → 흩어진 사물함 리스트 → 빠른 접근 vs 느린 접근 → 중간 삽입)
이제 같은 물건이라도
어떻게 담느냐에 따라
잘하는 일이 달라진다는 걸 알았어요.
배열과 리스트는
그릇 모양을 고르는 첫 갈림길이에요.
다음엔 한쪽 끝에서만
넣고 빼는 특별한 그릇,
쌓기와 줄 서기를
함께 살펴볼 거예요.