
코드트리 1주차 갭체크를 통해 내가 보완해야 할 개념으로 1차원 배열과 2차원 배열이 나왔다. 그중 이번 2주차에는 먼저 불안정한 지식으로 진단된 1차원 배열 레슨을 학습했다.

코드트리는 아래 링크에서 확인할 수 있다.
https://www.codetree.ai/ko/no-free-lunch-2026
3년 만에 돌아온, 코드트리 청약 통장 챌린지 | 코드트리
매주 학습 납입하고 7주 만기 채우면 코드트리 8월까지 무료. 매주 추첨권을 모아 맥북·에어팟·애플워치 응모까지. 신청 인원에 따라 조기마감될 수 있어요.
www.codetree.ai
이번에 학습한 챕터는 Chapter 7. 1차원 배열이었다. 레슨 목록을 보니 한 줄에 여러 개 입력, 인덱스 참조, 배열 만들기, Count 배열, 탐색 등 1차원 배열을 다룰 때 필요한 기본 개념들이 단계별로 구성되어 있었다. 처음에는 “배열은 이미 어느 정도 알고 있는 개념 아닌가?”라고 생각했지만, 막상 문제를 풀어보니 배열을 정확히 다루는 감각은 별도로 훈련해야 한다는 것을 느꼈다.
코드트리 커리큘럼 구조에 대한 이해
코드트리의 커리큘럼은 단순히 개념 설명만 보고 끝나는 방식이 아니라, 기본 문제 → 연습 문제 → 테스트 문제흐름으로 이어지는 구조였다.
먼저 기본 문제에서는 해당 레슨에서 꼭 알아야 할 핵심 개념을 가볍게 확인할 수 있었다. 예를 들어 배열에 값을 입력받아 저장하거나, 특정 위치의 값을 찾거나, 배열 전체를 순회하는 식의 문제들이 나왔다. 이 단계에서는 “배열을 어떻게 선언하고, 어떻게 값을 넣고, 어떻게 꺼내는지”를 손으로 익히는 느낌이었다.
그다음 연습 문제에서는 기본 개념을 조금 변형해서 적용해야 했다. 단순히 배열을 출력하는 것이 아니라, 조건에 맞는 값을 찾거나 합계와 평균을 구하거나, 특정 조건을 만족하는 위치를 찾아야 했다. 여기서부터는 반복문의 범위와 인덱스를 정확히 잡는 것이 중요했다.
마지막 테스트 문제는 앞에서 배운 내용을 스스로 적용해 보는 단계였다. 테스트 문제까지 풀어보니, 단순히 개념을 읽고 이해한 것과 실제로 코드를 작성하는 것은 다르다는 점을 다시 느꼈다.

학습하며 달라진 풀이 감각
이번 1차원 배열 학습에서 가장 크게 느낀 변화는, 문제를 볼 때 바로 코드를 작성하기보다 배열에 무엇을 저장해야 하는지 먼저 생각하게 되었다는 점이다.
예전에는 문제를 읽고 바로 반복문부터 작성하려는 습관이 있었다. 그런데 배열 문제를 풀다 보니, 먼저 다음과 같은 질문을 던지는 것이 중요했다.
“입력값을 배열에 저장해야 하는가?”
“배열의 모든 값을 한 번씩 순회해야 하는가?”
“특정 인덱스의 값만 필요한가?”
“조건을 만족하는 값을 찾는 문제인가?”
“개수를 세야 하는 문제인가?”
이런 식으로 생각하고 나니 풀이가 조금 더 정리되는 느낌이었다.
특히 인덱스 참조 부분에서 많은 도움이 되었다. 배열은 0번 인덱스부터 시작하는데, 문제에서 “첫 번째”, “마지막”, “n번째” 같은 표현이 나오면 실제 코드에서는 인덱스를 어떻게 바꿔야 하는지 헷갈릴 때가 있었다. 이번 레슨을 풀면서 arr[i], arr[i - 1], arr.length - 1 같은 표현을 반복해서 사용하다 보니, 인덱스를 기준으로 사고하는 감각이 조금 더 좋아졌다.
또한 “원소 10개의 합”, “평균점수 구하기”, “배열 채우기”, “특정 위치 찾기” 같은 문제를 풀면서 배열 문제는 결국 저장 → 순회 → 조건 처리 → 출력의 흐름으로 정리되는 경우가 많다는 것을 느꼈다. 앞으로 배열 문제를 만나면 이 흐름을 먼저 떠올려 보려고 한다.
어려웠던 점과 고민
가장 어려웠던 부분은 문제 자체의 난이도라기보다, 작은 실수를 줄이는 것이었다. 배열 문제는 로직이 복잡하지 않아 보여도 반복문의 시작과 끝 조건을 잘못 잡으면 바로 오답이 날 수 있다.
예를 들어 배열의 크기가 10이면 인덱스는 0부터 9까지인데, 문제를 급하게 풀다 보면 i <= 10처럼 작성할 위험이 있다. 또 입력받은 순서와 출력해야 하는 순서가 다를 때, 배열에 저장한 뒤 어떤 방향으로 순회해야 하는지도 차분히 확인해야 했다.
이번 학습을 통해 “쉬운 문제니까 대충 풀어도 된다”가 아니라, 쉬운 문제일수록 기본기를 정확히 다지는 데 집중해야 한다고 느꼈다. 특히 코딩테스트에서는 이런 기본 구현 실수가 누적되면 시간도 많이 쓰고 자신감도 떨어지기 때문에, 지금 단계에서 배열과 반복문을 확실히 잡아두는 것이 중요하다고 생각했다.
타 서비스와 비교했을 때 느낀 점
기존에는 프로그래머스나 백준에서 문제를 직접 골라 풀었다. 그 방식은 다양한 문제를 접할 수 있다는 장점이 있지만, 지금 내 수준에서 어떤 개념을 먼저 보완해야 하는지 판단하기 어려울 때가 있었다. 문제를 풀다가 막히면 그 문제가 어려운 문제라서 막힌 것인지, 아니면 내 기본 개념이 부족해서 막힌 것인지 구분하기가 쉽지 않았다.
반면 코드트리는 갭체크 결과를 바탕으로 현재 부족한 챕터를 추천해 주고, 그 챕터 안에서도 레슨 단위로 기본부터 테스트까지 이어진다는 점이 좋았다. 특히 내가 이번에 학습한 1차원 배열처럼 기본 개념을 다시 다질 때는, 무작정 문제를 검색해서 푸는 것보다 단계별 커리큘럼을 따라가는 방식이 더 안정적이라고 느꼈다.
또한 문제마다 예상 소요 시간과 난이도가 표시되어 있어, 내가 어느 정도 속도로 풀고 있는지도 확인할 수 있었다. 단순히 정답 여부만 보는 것이 아니라, 풀이 시간과 문제 유형을 함께 보면서 내 학습 상태를 점검할 수 있는 점이 도움이 되었다.
앞으로의 학습 목표
이번 2주차 학습을 통해 1차원 배열의 기본 흐름은 조금 더 익숙해졌지만, 아직 완전히 안정적인 상태라고 보기는 어렵다. 그래서 앞으로는 배열 문제를 풀 때 정답만 확인하는 것이 아니라, 내가 어떤 방식으로 배열을 사용했는지 함께 기록하려고 한다.
특히 다음 학습에서는 2차원 배열을 중점적으로 공부할 계획이다. 2차원 배열은 행과 열을 함께 다뤄야 해서 1차원 배열보다 실수할 지점이 더 많을 것 같다. 이번에 1차원 배열에서 익힌 “저장, 순회, 조건 처리” 흐름을 바탕으로, 2차원 배열에서도 행과 열의 인덱스를 정확히 다루는 연습을 이어가고 싶다.
이번 회차를 통해 느낀 점은, 알고리즘 공부에서 기본 개념은 절대 가볍게 넘길 수 없다는 것이다. 배열은 거의 모든 구현 문제의 시작점이기 때문에, 이번 기회에 1차원 배열과 2차원 배열을 확실히 복습하고 넘어가고 싶다.
'코드트리' 카테고리의 다른 글
| [코드트리 후기] 북마크로 나만의 오답노트와 복습 루틴 만들기 (0) | 2026.06.01 |
|---|---|
| [코드트리 3주차] 코드트리 GitHub 연동으로 1일 1코테 루틴 만들기 (0) | 2026.05.24 |
| [코드트리 후기] 코딩테스트 준비, 갭체크로 내 약점부터 확인하기 (0) | 2026.05.11 |