TIL 2026-02-25
2/25 - AI Literacy & c++ 코딩테스트 강의
생성일: 2026년 2월 25일 오전 9:47
AI Literacy 강의
프롬프트 설계 기법
- RAG: 외부/내부 자료를 검색 후 생성하여 정확도 향상
- Zero-shot / Few-shot: 예시 없음 vs 예시 기반 형식 고정
추론 및 검증 전략
- CoT: 추론 과정을 드러내 검증 가능성 확보(실무는 요약 근거 권장)
- 결과 검증 루틴: 출력→제약 재확인→반례 점검으로 오답 감소
스트럭처드 프롬프팅
- Role/Goal/Constraints/Format 명시로 품질 안정화
- 예시 기반 구조화로 산출물 일관성 확보
명령어 강도와 의도
- 찾아줘 vs 찾아와: 행동 지시 강도 차이 → 결과 완결성 영향
- 명령형 표현이 구체적 실행 요구를 강화
Structured Prompt
- 예시 1 – 기술 TIL 요약용 Structured Prompt
- Role: 게임프로그래밍 취준생 / Goal: 오늘 배운 내용 요점 정리
- Constraints: 각 항목 2줄 이하, 굵은 키워드, List 형식 / Format: Markdown 목록
- 예시 2 – 코딩 테스트 문제 분석용 Structured Prompt
- Role: 알고리즘 분석가 / Goal: 문제 풀이 전략 설계
- Constraints: 시간복잡도 명시, 예외 2개 포함 / Format: 단계별 분석 구조
- 활용 방법 ① 역할 명확화
- 결과 톤과 관점을 고정하기 위해 Role 선명화
- 면접용/보고서용 등 목적에 맞게 정체성 설정
- 활용 방법 ② 목표 구체화
- 추상적 요청 대신 산출물 목적을 명확히 정의
- “정리해줘” 대신 “면접 제출용 요약 작성”처럼 구체화
- 활용 방법 ③ 제약 조건 설정
- 분량, 형식, 강조 방식 지정으로 일관성 확보
- AI 할루시네이션 감소 및 결과 검증 용이
- 활용 방법 ④ 출력 형식 고정
- Markdown, 표, 코드블록 등 명확한 포맷 요구
- 반복 사용 시 템플릿화하여 생산성 향상
c++ 코딩테스트 강의
알고리즘 효율성 기준: 성능 평가는 절대 시간이 아닌 연산 횟수 기준으로 판단 챕터2-1 알고리즘 효율성
입력이 커질수록 PC 성능 차이보다 연산 수 추이가 중요
연산의 정의: 반복문 횟수 / 비교·대입·산술 연산 모두 비용으로 간주 챕터2-1 알고리즘 효율성
대용량 배열 비교도 무시 불가, 실제 코테에서 핵심 포인트
조건별 연산 변화: 입력/탐색 위치에 따라 최선·최악 경우 발생 챕터2-1 알고리즘 효율성
코테는 항상 최악 기준(Big-O) 로 판단
점근적 표기법: 증가 추세만 분석하는 방식, 상수·저차항 제거 챕터2-1 알고리즘 효율성
“입력이 충분히 클 때”의 성능이 본질
빅오(Big-O): 최악의 경우 기준 점근적 상한 챕터2-1 알고리즘 효율성
제한 시간 내 동작 여부 판단의 핵심 도구
최소한의 상한: 최고차항만 남겨 가장 타이트한 상한 선택 챕터2-1 알고리즘 효율성
예: 3N²+2N → O(N²)
시간 복잡도 가늠법: 1초 ≈ 1억 연산 가정 챕터2-1 알고리즘 효율성
N=1,000,000이면 O(N log N) 이하 설계 필요
O(N) 예시 – 선형 탐색
1
2
for(inti=0;i<size;i++)
if(arr[i]==target)returni;
배열 전수 탐색 → 최악 O(N)
- O(N²) 예시 – 2차원 순회
1
2
3
for(inti=0;i<N;i++)
for(intj=0;j<N;j++)
sum+=arr[i][j];
이중 반복문 → O(N²)
- O(log N) 예시 – 절반 감소
1
while(N>1){N/=2; }
반복마다 범위 절반 → 로그 증가
- O(2^N) 예시 – 모든 조합
1
2
3
for(inta=0;a<2;a++)
for(intb=0;b<2;b++)
for(intc=0;c<2;c++){}
완전 탐색/브루트포스, N 증가 시 폭발적 증가
코테 적용 전략: 입력 최대값 확인 → 허용 복잡도 역산
문제 설계 시 먼저 시간 복잡도 상한 결정 후 구현
입출력 처리 전략: 코딩테스트는 알고리즘보다 입력 파싱 속도에서 시간 손실 발생
다양한 형식(공백·구분자·진법)을 빠르게 처리하는 습관 필요 챕터2-3 로컬에서 입출력 데이터 다루기 실습
반올림/올림/내림 구분: round / ceil / floor 정확한 차이 이해 필수 챕터2-3 로컬에서 입출력 데이터 다루기 실습
음수 처리 방식이 다르므로 예외 케이스 대비 중요
round 특징: 0.5는 away from zero 기준 반올림 챕터2-3 로컬에서 입출력 데이터 다루기 실습
1
round(-2.5);// -3
- ceil / floor 차이: ceil은 항상 위, floor는 항상 아래 정수 챕터2-3 로컬에서 입출력 데이터 다루기 실습
1
2
ceil(-3.2);// -3
floor(-3.7);// -4
stringstream 활용: 문자열을 입력 스트림처럼 처리 가능 챕터2-3 로컬에서 입출력 데이터 다루기 실습
cin과 동일한 » 방식으로 데이터 추출 가능
공백 기준 분리: » 연산자로 자동 토큰화 챕터2-3 로컬에서 입출력 데이터 다루기 실습
1
2
stringstreamss ss;
ss>>a>>b>>c;
- 특정 문자 기준 분리: getline + 구분자 사용 챕터2-3 로컬에서 입출력 데이터 다루기 실습
1
while(getline(ss,token,',')){}
- 진법 변환 (10→16): stringstream + hex 조작자 활용 챕터2-3 로컬에서 입출력 데이터 다루기 실습
1
ss<<hex<<decimal;
- 진법 변환 (16→10): hex 설정 후 » 연산자로 파싱 챕터2-3 로컬에서 입출력 데이터 다루기 실습
1
ss>>hex>>decimal;
코테 적용 포인트: 파싱/형변환을 직접 구현하지 말고 표준 라이브러리 활용
시간 단축 + 실수 감소 + 가독성 향상
튜터님과의 대화
- 키워드 RnD 학습법: 단순 요약이 아닌 키워드를 재조합해 내 언어로 재구성
- 이해도 상승 체감: 복붙 정리보다 개념 연결 과정에서 사고 확장 효과
- 지식 내재화: 키워드를 재배열하며 원리 중심 구조화가 가능
- 면접 대비 강화: 질문 변형에도 대응 가능한 개념 설명력 향상
- 적용 방법 ① 키워드 추출: 강의/문서에서 핵심 개념 5~10개 선정
- 적용 방법 ② 구조 재설계: 인과관계·흐름 중심으로 새 목차 구성
- 적용 방법 ③ 실전 연결: 프로젝트/코테 사례에 직접 매핑
- 적용 방법 ④ 검증 루틴: “설명→반례 질문→보완” 반복으로 완성도 향상
- 한계 인식: 키워드만 남기면 맥락 손실 위험 → 핵심 예시 1개 포함
- 지속 전략: 매일 TIL에 1회 RnD 적용하여 학습 자산화