TIL 2026-02-23
TIL 2026-02-23
2/23 - c++코딩테스트 공부 1- 1~3
생성일: 2026년 2월 23일 오후 7:24
1️⃣ 챕터 1-1 오리엔테이션 요약
🔹 강의의 목표
1. 모든 문제를 푸는 것이 목표가 아님
- 코딩 테스트 합격이 목표
- 빈출 유형 중심 학습
- 출제 확률 낮은 고난도 수학 알고리즘은 제외
2. 빈출 개념을 깊이 이해
- 단순 풀이가 아닌 면접 대비 가능 수준까지 학습
- 개념 → 사고 과정 → 코드 순으로 접근
3. 문제를 스스로 사고하도록 훈련
- 해설 코드 이전에 아이디어 도출 과정 강조
- 예: 괄호 문제 → 스택 사고 과정 설명
🔹 강의 전체 커리큘럼 구조
챕터 1 – 코딩 테스트 이해
- 시험 개념
- 환경 설정
챕터 2 – 기초 다지기
- 시간 복잡도
- 공간 복잡도
- 필수 문법
- STL
- 효율적 구현
챕터 3 – 빈출 알고리즘
- 재귀
- 배열
- 정렬
- 스택/큐
- 트리/그래프
- 백트래킹
챕터 4 – 고급 알고리즘
- 최단 경로 (다익스트라, 벨만포드)
- 해시
- 동적 계획법
- 그리디
2️⃣ 챕터 1-2 개발 환경 설정 요약
🔹 1. Visual Studio 설치
- Visual Studio Community 다운로드
- “C++을 사용한 데스크톱 개발” 선택
- 프로젝트 단위로 코드 관리
🔹 2. 프로젝트 생성
- 빈 프로젝트 생성
- 프로젝트 / 솔루션 이름 지정
- 코드 작성 후 컴파일 (CTRL + F7)
- 실행 (F5)
🔹 3. 시험 환경과 동일하게 맞추기 (중요)
📌 프로그래머스 기준 컴파일 옵션:
1
-std=c++17
Visual Studio 설정:
1
프로젝트 → 속성 → C/C++ → 언어 → ISO C++17
⚠ 버전 불일치 시:
- 내 PC에서는 정답
- 시험 서버에서는 컴파일 에러 발생 가능
🔹 4. 프로그래머스 구조 이해
주요 메뉴
- 모든 문제
- 입문 문제
- 알고리즘 고득점 Kit
- 기업 기출
문제 필터
- 상태
- 난이도 (LV.3 이하 추천)
- 사용 언어
3️⃣ 챕터 1-3 코딩 테스트 이해하기 요약
🔹 1. 코딩 테스트의 본질
특징
- 제한 시간 존재
- 효율성 요구
- 정답 + 성능 둘 다 필요
🔹 2. 필요한 역량
- 요구사항 정확히 파악
- 효율적인 코드 작성
- 논리적 설계 능력
- 예외 처리 능력
🔹 3. 효율적인 목표 설정 방법
❌ 추상적 목표
- “한 달에 100문제”
⭕ 개선 방법
- 취약 유형 분석
- 데이터 기반 계획 수립
- 사이클 반복
학습 사이클:
1
2
3
4
5
학습 데이터 분석
→ 계획 수립
→ 공부 진행
→ 블로그 정리
→ 다시 분석
🔹 4. 문제 풀이 전략 (핵심)
문제 풀이 전체 과정:
1
2
3
4
1. 문제 요약
2. 입출력 분석
3. 전략 설계
4. 구현
시간 비율:
- 분석 70%
- 구현 30%
🔹 실제 예시 분석 (오픈채팅방 문제)
1단계: 문제 요약
- 3문장 요약
- 특이사항 정리
- 제한사항 정리
2단계: 입출력 분석
- 예시로 흐름 확인
- 오해 수정
3단계: 전략 설계
- 논리 수준에서 설계
- 바로 코드 작성 금지
4단계: 예외 케이스 찾기
- 추가 테스트 생성
- 반례 확인
5단계: 시간 초과 분석
- record 최대 10만개
- O(N²) 구조 발생
→ 자료구조 활용 필요
🔹 채점 방식
프로그래머스는 2단계 채점
1️⃣ 정확성 테스트
- 10초 이내
- 정답 일치 여부
2️⃣ 효율성 테스트
- 시간 복잡도 기준 통과 여부
- 평균 수행 시간 기반
🔹 핵심 깨달음
- 입출력 예 통과 ≠ 정답
- 시간 초과는 설계 문제
- 구현 실패는 전략 문제
🎯 오늘 학습 핵심 정리
- 코딩 테스트는 “합격 전략”이 중요하다.
- 환경 세팅을 시험 서버와 동일하게 맞춰야 한다.
- 문제는 바로 구현하지 말고 반드시 설계한다.
- 분석에 70% 시간을 투자한다.
- 시간 초과는 대부분 자료구조 설계 문제다.
- 공부는 데이터 기반 반복 사이클로 진행한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.