-
[Java] 코딩 테스트 정복의 첫걸음: 기본 자료구조 5가지와 학습 전략코딩테스트 2026. 1. 20. 17:35
개발자로서의 역량을 쌓기 위해 이전부터 조금씩 해온 코딩 테스트(코테) 본격적으로 준비하기 시작했습니다.
처음 문제를 마주했을 때 "이건 무슨 유형이지?", "어디서부터 코드를 짜야 하지?"라는 막막함이 앞섰는데 무작정 문제만 풀기보다는 기본 자료구조를 탄탄히 다지고 전략적으로 접근하는 것이 핵심이라는 것을 깨달았습니다.
오늘은 제가 공부한 Java 기반의 필수 자료구조 5가지와 앞으로의 학습 로드맵을 정리해 보려 합니다.
1. 왜 자료구조인가?
알고리즘은 결국 **'데이터를 어떻게 효율적으로 요리하는가'**의 문제입니다. 그리고 그 데이터를 담는 그릇이 바로 자료구조입니다. 문제의 요구사항에 맞는 적절한 그릇을 선택하는 것만으로도 시간 복잡도를 획기적으로 줄일 수 있습니다.
2. Java로 정리하는 필수 자료구조 5가지
① 배열(Array) & 문자열(String)

[참고]https://hongong.hanbit.co.kr/java-%EC%9E%90%EB%B0%94-%EB%B0%B0%EC%97%B4array-%EC%84%A0%EC%96%B8%ED%95%98%EA%B3%A0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0/ 데이터를 순차적으로 저장하며, **인덱스(Index)**를 통한 빠른 접근($O(1)$)이 강점입니다.
- Java Tip: 고정 크기인 배열의 단점을 보완하기 위해 실전에서는 ArrayList를 자주 사용하며, 문자열 수정이 잦을 때는 StringBuilder를 사용하는 것이 메모리 효율에 좋습니다.
② 스택(Stack)

[참고]https://velog.io/@jisubin12/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack LIFO(Last In, First Out) 구조로, 가장 나중에 들어온 데이터가 먼저 나갑니다.
- 활용: 뒤로 가기, 괄호 짝 맞추기, 재귀적인 로직 구현.
- Java Code: Stack<Integer> stack = new Stack<>();
③ 큐(Queue)
FIFO(First In, First Out) 구조로, 먼저 들어온 데이터가 먼저 나갑니다.
- 활용: 작업 대기열, BFS(너비 우선 탐색) 알고리즘.
- Java Code: Queue<Integer> queue = new LinkedList<>();

[참고]https://velog.io/@suitepotato/00004 ④ 해시 맵(HashMap)

[참고]https://velog.io/@cchoijjinyoung/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-5-HashMap%ED%95%B4%EC%8B%9C%EB%A7%B5%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 Key-Value 쌍으로 데이터를 저장하며, 탐색 속도가 매우 빠릅니다 ($O(1)$).
- 활용: 특정 키로 값을 즉시 찾아야 할 때, 데이터 중복 제거, 빈도수 계산.
- Java Code: HashMap<String, Integer> map = new HashMap<>();
3. 나만의 코딩 테스트 학습 로드맵
단순히 문제를 많이 푸는 것이 아니라, '생각하는 힘'을 기르기 위해 다음과 같은 원칙을 세웠습니다.
- 30분 규칙: 문제를 보고 30분 동안 로직이 떠오르지 않는다면, 과감히 풀이를 본다. (모르는 상태에서 끙끙 앓기보다 좋은 코드를 내 것으로 만드는 데 집중!)
- 개념 중심 학습: '문제 풀이'보다 '유형 파악'에 집중한다. 문제를 읽고 필요한 자료구조가 무엇인지 먼저 설계하는 연습을 한다.
- Java Standard: 자바의 표준 라이브러리(Collections Framework)를 능숙하게 다룰 수 있도록 반복 연습한다.
4. 마치며
이제 막 첫발을 뗐지만, 꾸준함이 정답이라고 믿습니다. 앞으로 프로그래머스 입문 단계부터 시작해 점진적으로 난이도를 높여갈 예정입니다.
"지름길은 없지만, 올바른 방향은 있다." 오늘도 한 걸음 성장하는 개발자가 되겠습니다.
'코딩테스트' 카테고리의 다른 글
[Java] "유형을 몰라도 당황하지 않는다" — 코딩 테스트를 위한 5단계 고정 루틴 (0) 2026.01.20