claude

클로드 알고리즘 설계 프롬프트 - 자료구조 코딩테스트 최적화

Claude로 알고리즘 설계, 자료구조 선택, 시간복잡도 분석, 코딩테스트 문제 해결을 위한 프롬프트입니다. 효율적인 알고리즘 설계부터 최적화 기법까지 다룹니다.

수정
💡

프롬프트 사용 방법

  1. 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
  2. 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
  3. 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요

💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!

📝 필요한 정보를 입력해주세요 (총 9개)

문제 유형에 대한 값을 입력하세요

입력 크기에 대한 값을 입력하세요

제약 조건에 대한 값을 입력하세요

문제 설명에 대한 값을 입력하세요

입력 형식에 대한 값을 입력하세요

출력 형식에 대한 값을 입력하세요

예제 입력에 대한 값을 입력하세요

예제 출력에 대한 값을 입력하세요

프로그래밍 언어에 대한 값을 입력하세요

📋 완성된 프롬프트 (복사해서 사용하세요)

당신은 ACM ICPC World Finalist 출신 알고리즘 전문가입니다. 15년간 경쟁 프로그래밍과 알고리즘 최적화를 연구해 온 전문가로서 효율적인 알고리즘을 설계하세요.


## 문제 정보
- 문제 유형: {{문제_유형}}
- 입력 크기: {{입력_크기}}
- 제약 조건: {{제약_조건}}

## 문제 설명
{{문제_설명}}

### 입력 형식
{{입력_형식}}

### 출력 형식
{{출력_형식}}

### 예시
입력: {{예제_입력}}
출력: {{예제_출력}}

## 알고리즘 설계 프로세스

### 1단계: 문제 분석
- 문제 유형 식별: 정렬/탐색, 그래프, DP, 그리디, 이분탐색
- 입력 크기 분석: N 범위에 따른 허용 복잡도
- 제약 조건 확인: 시간/메모리 제한

### 2단계: 자료구조 선택
- 배열/리스트: O(1) 인덱싱
- 해시 테이블: O(1) 검색
- 우선순위 큐: O(log N) 삽입/삭제
- 스택/큐: O(1) 삽입/삭제

### 3단계: 알고리즘 설계
- 투 포인터: 정렬된 배열에서 두 수 합
- 슬라이딩 윈도우: 고정 길이 구간
- 이분 탐색: 정렬된 데이터 검색
- BFS/DFS: 그래프 탐색
- DP: 최적 부분구조 + 중복 부분문제

### 4단계: 복잡도 분석
- 시간 복잡도: 루프 중첩, 재귀 호출
- 공간 복잡도: 입력 + 보조 + 재귀 스택

### 5단계: 엣지 케이스
빈 입력, 단일 요소, 경계값, 오버플로우

## 출력 형식

1. 문제 분석 (유형, 입력 크기, 제약)
2. 알고리즘 선택 (이유, 시간/공간 복잡도)
3. 핵심 아이디어
4. 구현 코드 ({{프로그래밍_언어}})
5. 엣지 케이스 처리
6. 최적화 포인트

입력하지 않은 항목은 원래 표시를 유지합니다.

입력값 가이드

아래 9개의 항목을 입력하면 맞춤형 알고리즘 설계를 제공해 드립니다.

입력 항목 한국어 설명 placeholder 예시
문제 유형 문제가 어떤 알고리즘 유형인지 파악해서 적어주세요 최단 경로 선택 최단 경로, LIS, DP, 이분 탐색, 그래프 탐색
입력 크기 입력 데이터의 최대 크기를 적어주세요 N ≤ 100,000 선택 N ≤ 100,000, N ≤ 10^6, N, M ≤ 1000
제약 조건 시간 제한과 메모리 제한을 적어주세요 예: 시간 2초, 메모리 256MB 시간: 2초, 메모리: 256MB, 1초 이내
문제 설명 문제의 전체 설명을 복사해서 붙여넣어 주세요 예: 시작점부터 모든 정점까지 최단 거리 시작점부터 모든 정점까지의 최단 거리를 구하시오
입력 형식 입력이 어떤 형식으로 주어지는지 적어주세요 예: 첫째 줄: N M 첫째 줄: N M, 둘째 줄~M개 줄: u v w
출력 형식 출력해야 할 결과 형식을 적어주세요 예: i번째 정점까지의 최단 거리 i번째 정점까지의 최단 거리를 한 줄씩 출력
예제 입력 실제 입력 예시를 복사해서 붙여넣어 주세요 예: 5 6 1 5 6 1\n5 1 1\n1 2 2\n...
예제 출력 실제 출력 예시를 복사해서 붙여넣어 주세요 예: 0 2 3 7 INF 0\n2\n3\n7\nINF
프로그래밍 언어 코드를 작성할 프로그래밍 언어를 적어주세요 Python 선택 Python, C++, Java, JavaScript

인풋 필드

[문제 유형]
▼ 드롭다운 선택
옵션: 최단 경로, LIS (최장 증가 부분수열), DP (동적 프로그래밍), 이분 탐색, 그래프 탐색, 정렬, 해싱
placeholder: "최단 경로"
설명: 문제가 어떤 알고리즘 유형인지 파악해서 적어주세요

[입력 크기]
▼ 드롭다운 선택
옵션: N ≤ 100, N ≤ 1,000, N ≤ 100,000, N ≤ 1,000,000, N ≤ 10^6
placeholder: "N ≤ 100,000"
설명: 입력 데이터의 최대 크기를 적어주세요

[제약 조건]
▼ 라디오 버튼 선택
옵션: ☐ 시간 1초 이내  ☐ 시간 2초 이내  ☐ 메모리 256MB 이하  ☐ 제약 없음
placeholder: "시간: 2초, 메모리: 256MB"
설명: 시간 제한과 메모리 제한을 적어주세요

[문제 설명]
▼ 텍스트 영역 입력
placeholder: "예: 시작점부터 모든 정점까지의 최단 거리를 구하시오"
설명: 문제의 전체 설명을 복사해서 붙여넣어 주세요

[입력 형식]
▼ 텍스트 영역 입력
placeholder: "예: 첫째 줄: N M, 둘째 줄~M개 줄: u v w"
설명: 입력이 어떤 형식으로 주어지는지 적어주세요

[출력 형식]
▼ 텍스트 영역 입력
placeholder: "예: i번째 정점까지의 최단 거리를 한 줄씩 출력"
설명: 출력해야 할 결과 형식을 적어주세요

[예제 입력]
▼ 텍스트 영역 입력
placeholder: "예: 5 6 1\n5 1 1\n1 2 2"
설명: 실제 입력 예시를 복사해서 붙여넣어 주세요

[예제 출력]
▼ 텍스트 영역 입력
placeholder: "예: 0\n2\n3\n7\nINF"
설명: 실제 출력 예시를 복사해서 붙여넣어 주세요

[프로그래밍 언어]
▼ 드롭다운 선택
옵션: Python, C++, Java, JavaScript, Go, Rust
placeholder: "Python"
설명: 코드를 작성할 프로그래밍 언어를 적어주세요

N 크기별 추천 복잡도

N 추천 복잡도
N ≤ 100 O(N³)
N ≤ 1,000 O(N²)
N ≤ 100,000 O(N log N)
N ≤ 1,000,000 O(N)
N > 1,000,000 O(N) 미만

자료구조 선택

용도 자료구조 시간 복잡도
빠른 검색 해시 테이블 O(1)
최소/최대 우선순위 큐 O(log N)
범위 쿼리 세그먼트 트리 O(log N)
LIFO/FIFO 스택/큐 O(1)
집합 병합 유니온 파인드 O(α(N))

핵심 알고리즘 패턴

패턴 설명
투 포인터 정렬된 배열에서 두 수 합
슬라이딩 윈도우 고정 길이 구간 합/최대
이분 탐색 정렬 데이터 검색, 매개변수 탐색
BFS/DFS 그래프 탐색, 최단 경로
DP 메모이제이션, 탭뷸레이션

언어별 최적화

언어
Python sys.stdin.readline, set/dict O(1) 조회
C++ ios::sync_with_stdio(false), unordered_map
Java BufferedReader, StringBuilder

주의사항

주의점 설명
복잡도 먼저 구현 전 시간/공간 복잡도 계산
엣지 케이스 빈 입력, 경계값, 최대 입력 테스트
오버플로우 큰 수는 적절한 타입 사용
단순하게 복잡한 최적화보다 단순한 정답 먼저

🚀 AI 바로 열기

🔗 관련 프롬프트