포스트

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. 필요한 역량

  1. 요구사항 정확히 파악
  2. 효율적인 코드 작성
  3. 논리적 설계 능력
  4. 예외 처리 능력

🔹 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️⃣ 효율성 테스트

  • 시간 복잡도 기준 통과 여부
  • 평균 수행 시간 기반

🔹 핵심 깨달음

  • 입출력 예 통과 ≠ 정답
  • 시간 초과는 설계 문제
  • 구현 실패는 전략 문제

🎯 오늘 학습 핵심 정리

  1. 코딩 테스트는 “합격 전략”이 중요하다.
  2. 환경 세팅을 시험 서버와 동일하게 맞춰야 한다.
  3. 문제는 바로 구현하지 말고 반드시 설계한다.
  4. 분석에 70% 시간을 투자한다.
  5. 시간 초과는 대부분 자료구조 설계 문제다.
  6. 공부는 데이터 기반 반복 사이클로 진행한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.