jundev
개발
jundev
전체 방문자
오늘
어제
  • 분류 전체보기 (37)
    • 생각 (0)
    • 블록체인 (3)
      • 책 (0)
      • 블록체인개론 (0)
      • 논문 (1)
      • 기술 (2)
    • 개발 (6)
      • JavaScript (1)
      • Java (9)
      • SpringBoot (1)
      • Mysql , SQL (4)
      • Git (1)
      • Spring (0)
    • CS (7)
      • 컴퓨터구조 (3)
      • 운영체제 (1)
      • 자료구조 (1)
      • 알고리즘 (1)
      • 데이터베이스 (0)
    • 프로젝트 (3)
      • 야구어플 (2)
      • 스테이블코인 결제 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

티스토리

hELLO · Designed By 정상우.
jundev

개발

개발

[코드트리] 2차원배열 알고리즘 약점 극복 학습 후기

2026. 5. 24. 12:56

코드트리 2주차 후기 - 2차원 배열을 풀면서 문제 보는 눈이 조금 달라졌다

코드트리로 2주차 학습을 하면서 느낀 건, 이 플랫폼이 그냥 문제만 많이 풀게 하는 스타일은 아니라는 점입니다
이번 주에 학습한 2차원 배열 레슨들을 따라가다 보니까 "개념을 보고 바로 적용해보고, 다시 확인해보는" 흐름이 꽤 촘촘하게 짜여 있다는 게 확실히 느껴졌습니다.

예전에는 배열 문제가 나오면 일단 for문부터 쓰고 보는 편이었는데, 이번 주에는 문제를 읽고 나서 "이건 행 기준으로 봐야 하나?", "열 기준으로 다시 계산해야 하나?", "입력받으면서 바로 처리할 수 있나?" 같은 걸 한 번쯤 먼저 생각하게 되더라고요.
아직 엄청 능숙해졌다고 하긴 어렵지만, 적어도 예전처럼 무작정 손부터 나가지는 않게 된 것 같아요.

코드트리 커리큘럼 구조는 생각보다 잘게 쪼개져 있다

코드트리를 쓰면서 느낀 커리큘럼의 특징은 큰 개념을 한 번에 확 던지지 않는다는 점이었어요.
아주 작은 단위로 쪼개서 하나씩 익히게 만드는 느낌에 가까웠습니다.

예를 들어 이번에 다룬 2차원 배열도 처음부터 복잡한 구현 문제로 들어가는 게 아니라, 합 구하기, 대문자 변환, 평균 계산처럼 비교적 명확한 작업부터 시작하더라고요.
덕분에 배열의 구조를 먼저 눈에 익히고, 그다음에 조금씩 응용하는 흐름으로 가게 됩니다.

이런 구조가 좋았던 이유는, "2차원 배열을 안다"라는 말을 너무 거창하게 느끼지 않게 해준다는 점이었어요.
행과 열을 순회하는 기본 형태를 먼저 익히고, 그다음에는 출력 형식이나 평균 계산처럼 조금 더 신경 써야 하는 문제로 넘어가고, 마지막에는 특정 조건을 만족하는 원소만 골라 더하는 식으로 사고를 넓혀가게 됩니다.

정리하면 코드트리의 커리큘럼은 대략 이런 느낌이었습니다.

  • 개념을 아주 작은 단위로 나눈다.
  • 레슨에서 기본 형태를 익힌다.
  • 연습 문제로 같은 패턴을 반복한다.
  • 테스트 문제에서 스스로 구현하게 만든다.

이 구조 덕분에 "이론은 아는데 막상 문제는 못 푸는 상태"가 조금 줄어드는 느낌이 있었어요.
다른 서비스에서는 개념 설명을 보고 바로 난도가 섞인 문제들로 넘어가는 경우도 많은데, 코드트리는 그 사이를 이어주는 구간이 좀 더 분명하게 보였습니다.

기본 - 연습 - 테스트 흐름을 따라가며 풀이 감각이 달라졌다

이번 주에 풀었던 문제들을 돌아보면, 비슷해 보이면서도 문제마다 요구하는 생각의 방향이 조금씩 달랐어요.
그래서 더 재밌기도 했고, "같은 2차원 배열이어도 보는 포인트가 다르구나"를 느끼게 됐습니다.

1. 배열의 합 - 행 단위 순회가 익숙해지기 시작한 문제

이 문제는 4개의 줄에 4개씩 정수를 입력받고, 각 줄의 합을 구하는 문제였습니다.
겉으로 보면 단순한 문제인데, 2차원 배열이 아직 익숙하지 않을 때는 arr[i][j]가 정확히 어떤 위치를 뜻하는지 바로 안 잡힐 때가 있잖아요.

이 문제를 풀면서는 "바깥쪽 반복문은 행, 안쪽 반복문은 열"이라는 구조를 다시 한 번 확실히 익히게 됐습니다.
특히 합을 행마다 초기화해야 한다는 점이 분명해서, 반복문의 역할을 구분하는 연습용으로 좋았어요.

2. 대문자로 바꾸기 - 숫자 배열이 아니라 문자 배열도 같은 원리라는 걸 익힌 문제

이 문제는 5행 3열의 문자 배열을 입력받아 대문자로 바꾸어 출력하는 문제였습니다.
배열 구조 자체는 비슷한데, 자료형이 int에서 char로 바뀌고 출력 형식까지 맞춰야 하다 보니 단순히 순회만 하는 문제는 아니더라고요.

개인적으로는 이 문제에서 "배열 문제의 핵심은 값의 종류보다 순회 구조"라는 걸 더 분명히 느꼈습니다.
숫자를 더하든 문자를 바꾸든, 결국 중요한 건 어느 위치의 값을 어떤 순서로 꺼내 처리하느냐였어요.

3. 배열의 평균 - 이제는 저장 이후 다시 계산하는 흐름을 생각하게 된 문제

이 문제는 가로 평균, 세로 평균, 전체 평균을 각각 구해야 해서 앞선 문제보다 생각할 게 더 많았습니다.
입력만 받고 바로 끝나는 게 아니라, 한 번 저장한 배열을 기준으로 여러 방향에서 다시 계산해야 했거든요.

예전 같았으면 문제에 나온 순서대로 그냥 구현하다가 중간에 헷갈렸을 것 같은데, 이번에는 "이건 입력과 계산을 나눠서 봐야 하는 문제구나"라는 생각이 먼저 들었습니다.
행 기준 평균, 열 기준 평균, 전체 평균이 모두 필요하니까 배열에 저장해두는 이유도 훨씬 명확하게 느껴졌고요.

게다가 소수 첫째 자리까지 출력해야 해서, 단순한 반복문 문제에서 끝나는 게 아니라 출력 포맷도 같이 챙기는 연습이 됐습니다.

4. 특정 원소들의 합 - 조건을 보고 순회 범위를 떠올리는 연습이 된 문제

이번 주 문제들 중에서는 이 문제가 가장 "2차원 배열 문제를 푼다"는 느낌이 강했어요.
4x4 배열 전체를 다 더하는 게 아니라, 특정 위치에 해당하는 값들만 더해야 했기 때문입니다.

여기서 j <= i 같은 조건으로 접근할 수 있다는 점이 인상적이었습니다.
예전에는 그림이 나오면 괜히 복잡하게 느껴졌을 텐데, 이번에는 "이거 행과 열의 인덱스 관계로 표현할 수 있겠는데?"라는 식으로 보게 되더라고요.

이 차이가 은근 컸습니다.
그냥 문제 하나를 푼 게 아니라, 그림이나 규칙이 있는 2차원 배열 문제를 볼 때 조건을 식으로 바꿔보는 감각이 조금 생겼거든요.

레슨 단위 학습이 도움이 됐던 이유

코드트리는 레슨 하나 보고 끝나는 구조라기보다, 그 레슨에서 다룬 핵심을 문제 여러 개로 다시 만져보게 해주는 편이었어요.
이번 주에는 그 점이 특히 잘 느껴졌습니다.

처음에는 그냥 "행과 열을 반복문으로 돈다" 정도로 이해했던 내용이, 문제를 몇 개 이어서 풀다 보니 조금씩 더 구체적으로 나뉘기 시작하더라고요.

  • 언제 행 기준으로 계산해야 하는지
  • 언제 열 기준으로 다시 순회해야 하는지
  • 입력과 출력을 바로 처리해도 되는지
  • 배열에 저장한 뒤 재사용해야 하는지
  • 특정 구간만 조건으로 걸러낼 수 있는지

이런 식으로요.
그래서 단순히 문제 수만 채운 느낌보다는, 같은 개념 안에서도 풀이 포인트가 조금씩 다르다는 걸 익히는 시간에 더 가까웠습니다.

해설과 모범 코드도 생각보다 도움이 됐다

문제를 풀다가 막히는 순간마다 해설이나 모범 코드를 보는 경험도 꽤 도움이 됐어요.
특히 코드트리 모범 코드는 쓸데없이 길지 않고, 그 문제에서 필요한 구조를 비교적 깔끔하게 보여줘서 "아, 이 문제는 이렇게 정리하면 되는구나" 하고 보기 좋았습니다.

예를 들어 배열의 평균 같은 문제는 혼자 풀었으면 가로 평균 구하는 루프랑 세로 평균 구하는 루프를 섞어서 더 복잡하게 썼을 가능성이 컸어요.
그런데 모범 코드를 보면 계산 단위를 나눠서 읽기 쉽게 작성해두는 경우가 많아서, 단순히 정답만 확인하는 게 아니라 코드 정리 방식까지 같이 배우게 되더라고요.

토론이나 다른 풀이를 보는 것도 괜찮았습니다.
같은 문제를 풀어도 사람마다 어디를 먼저 보는지가 다르다는 걸 확인할 수 있었거든요.
저는 보통 구현부터 들어가는 편인데, 다른 풀이를 보면 조건을 먼저 정리하거나 출력 형식을 먼저 맞추는 경우도 있어서 문제 접근 순서를 한 번 돌아보게 됐어요.

다른 학습 서비스와 비교했을 때

다른 학습 서비스들을 써보면서 느낀 건, 대체로 두 가지로 나뉜다는 점이었어요.
하나는 개념 설명은 잘 되어 있는데 실제 문제 연결이 좀 약한 쪽, 다른 하나는 문제는 많은데 왜 이 문제를 지금 푸는지 흐름이 잘 안 보이는 쪽이었습니다.

그에 비해 코드트리는 적어도 입문이나 기초 단계에서는 "왜 이 순서로 배우는지"가 비교적 잘 보이는 편이었어요.
특히 기본, 연습, 테스트처럼 학습 단계를 나눠 놓은 구조가 있어서 처음 배우는 입장에서는 덜 막막했습니다.

좋았던 점은 분명했어요.

  • 개념과 문제 사이 간격이 너무 벌어지지 않는다.
  • 같은 주제 안에서 난도가 조금씩 올라가서 부담이 덜하다.
  • 모범 코드와 해설을 통해 내가 놓친 포인트를 바로 확인할 수 있다.

반대로 아주 빠르게 많은 유형을 훑고 싶은 사람에게는 조금 천천히 간다고 느껴질 수도 있겠다는 생각은 들었습니다.
그래도 저처럼 기초를 다시 다지는 단계에서는 이 속도가 오히려 장점에 더 가까웠어요.

2주차를 마치고

이번 주 학습에서 제일 크게 남은 건, 2차원 배열을 보는 시선이 조금 달라졌다는 점입니다.
예전에는 배열 문제가 나오면 바로 구현부터 떠올렸다면, 이제는 "행 기준인가?", "열 기준인가?", "조건으로 걸러낼 수 있나?", "저장해두고 다시 써야 하나?"를 먼저 생각하게 됐어요.

아직은 진짜 작은 변화일 수 있지만, 이런 감각이 쌓여야 나중에 시뮬레이션이나 구현 문제를 풀 때도 덜 막히지 않을까 싶습니다.
그래서 이번 2주차는 문제를 많이 풀었다기보다는, 문제를 보는 방식이 조금 정리된 주간이었다고 말하고 싶어요.


한줄 정리

코드트리 2주차는 2차원 배열 문제를 풀면서 "어떻게 순회하고, 어디를 기준으로 계산할지"를 조금씩 감 잡아가는 시간에 가까웠습니다.

좋은기회 함께 하실 분들은 함께해요! https://www.codetree.ai/ko/no-free-lunch-2026/?ref=E8BKU2

'개발' 카테고리의 다른 글

[코드트리 후기] 오랜만에 코딩테스트 준비해보기 갭체크부터 시작!  (0) 2026.05.17
Nginx 정리: 백엔드 개발자가 알아야 할 개념부터 실무 설정까지  (0) 2026.04.15
Spring Security 오픈소스 기여 후기  (0) 2026.01.22
AWS 크레딧 1000불 받는 방법 (승인 실패 후 재검토 받는법)  (0) 2025.11.05
RESTful API 완벽 가이드  (0) 2025.10.16
    '개발' 카테고리의 다른 글
    • [코드트리 후기] 오랜만에 코딩테스트 준비해보기 갭체크부터 시작!
    • Nginx 정리: 백엔드 개발자가 알아야 할 개념부터 실무 설정까지
    • Spring Security 오픈소스 기여 후기
    • AWS 크레딧 1000불 받는 방법 (승인 실패 후 재검토 받는법)
    jundev
    jundev

    티스토리툴바