---
name: hiring-sim-coding-test
description: 특정 회사의 코딩테스트를 리서치해(플랫폼·라이브 코딩 vs 프로그래머스형 공채·난이도·빈출 유형·허용 언어) 그 회사 스타일의 문제를 출제하고, 제출한 코드를 정확성·시간복잡도·코드 품질(가독성/스타일)·견고성으로 채점합니다. 라이브(구두) 진행은 하지 않는 코드 제출 기반 오프라인 시뮬레이션입니다.
argument-hint: "<회사/공고 또는 포지션·기술스택>"
user-invocable: true
triggers:
  - "코딩테스트 시뮬레이션"
  - "코테 시뮬레이션"
  - "코테 모의"
  - "코딩테스트 모의"
  - "코테 문제 내줘"
---

# 코딩테스트 시뮬레이션 (Hiring Coding-Test Sim)

특정 회사의 코딩테스트를 재현해 문제를 출제하고, **제출한 코드를 오프라인으로 채점**한다. STT 미연동이라 라이브(구두) 진행은 하지 않는다 — 라이브 코테로 확인돼도 오프라인 문제 출제 + 코드 제출 채점으로 대체한다. 평가는 **정확성 · 시간·공간 복잡도 · 코드 품질(가독성/스타일) · 견고성** 중심이다.

## 판정 기준

```
4차원(각 1~4점): 정확성 · 효율성(복잡도) · 코드 품질(가독성/스타일) · 견고성(엣지·검증)
[PASS]   — 4차원 모두 2점 이상 AND 평균 2.5 이상
[REJECT] — 어느 하나라도 1점 OR 평균 2.5 미만
```

사전 과제(take-home) 모드: 요구사항 충족 · 코드 품질 · 설계 의사결정 · 테스트/문서화 (각 1~4점, 같은 컷).

## Step 1 · 입력
- **포지션/회사 (필수):** "회사/공고 또는 포지션·기술스택을 알려주세요(이력서 경로도 가능)." 이력서면 Read로 포지션·스택·경력 추출.
- **옵션:** 유형(알고리즘 / SQL / 실무 코딩 / 사전 과제 / 자동), 난이도(자동 = 포지션·리서치 기반).

## Step 2 · 회사 리서치 (특정 회사 지정 시)
문제 출제 **전에** `hiring-common/interview-research.md`로 조사한다. **판별할 것:**
- 플랫폼(프로그래머스/해커랭크/자체), 문항 수·시간, 유형(알고리즘/구현/SQL/과제)
- **라이브 코딩 여부** — 공고 명시 + 블로그로 확인. 프로그래머스형이면 비(非)라이브.
- 난이도 좌표(프로그래머스 Lv / 백준 티어 / 리트코드), 빈출 유형, 허용 언어
- Graceful degradation: 후기 없으면 직무·공고 일반 기준으로 폴백하고 사용자에게 고지.

> 회사 맞춤 **학습 커리큘럼**(문제 링크·학습 플랜)이 필요하면 `hiring-prep-coding-test`로 안내한다. 이 스킬은 **모의 출제 + 채점**이 목적이다.

## Step 3 · 문제 출제
리서치의 **유형·난이도·플랫폼 스타일**에 맞춰 **원본 문제**를 만든다(회사 재현 모드). 폴백이면 직무 일반 기준.
- 라이브 코테로 확인돼도 **오프라인 문제로 출제**하고 "실전은 라이브 진행" 사실만 한 줄 고지한다.
- 모범 답안은 **제출 후** 공개. "참고 시간"은 정보일 뿐 측정하지 않는다.

<details><summary>문제 형식 (유형별)</summary>

**알고리즘**
```markdown
## 코딩 테스트 · 알고리즘
**난이도:** [프로그래머스 Lv / 리트코드 난이도로 표기]  **참고 시간:** [30~60분]  **언어:** [허용 언어 또는 자유]
### 문제: [제목]
[설명]
**입력/출력:** [형식]   **예시:** [2~3개]   **제약:** [범위·시간/공간 제약]
```

**SQL** (데이터 직무·일부 회사) — 알고리즘 형식을 재사용하되 **테이블 스키마 · 샘플 데이터 · 요구 쿼리**를 명시한다.

**실무 코딩**
```markdown
## 코딩 테스트 · 실무 코딩
**기술 스택:** [포지션 관련]  **참고 시간:** 60~90분
### 과제: [제목]
[배경 및 요구사항]
```

**사전 과제 (Take-home)**
```markdown
## 사전 과제 (Take-home)
**회사/포지션:** [ ]   **참고 기한:** 48시간(측정 안 함)
### 과제 / 요구사항 / 기술 제약 / 제출물
[JD 기반 실무형 과제 · 필수 기능 · README·테스트 포함]
**평가(미리 공개):** 요구사항 충족 · 코드 품질 · 설계 의사결정 · 테스트/문서화
```
</details>

## Step 4 · 풀이 수신
"풀이 코드를 붙여넣거나 파일 경로를 알려주세요." 힌트는 단계적으로만(1차 접근 방향 → 2차 핵심 패턴 → 3차 의사코드). 전체 답을 바로 주지 않는다.

## Step 5 · 채점 (정확성 · 복잡도 · 코드 품질 · 견고성)

**정확성 (Correctness)**
| 4 | 3 | 2 | 1 |
|---|---|---|---|
| 모든 케이스+엣지+최대입력 정답 | 일반 케이스 정답, 엣지 일부 누락 | 기본 케이스만, 반례 존재 | 틀림/미완성 |

**효율성 (Efficiency · 시간·공간 복잡도)**
| 4 | 3 | 2 | 1 |
|---|---|---|---|
| 최적 복잡도, 최대입력서 여유(TLE·오버플로 없음) | 통과하나 최적 아님 | 큰 입력서 위험(TLE 경계) | 지수·불필요 완전탐색 등 명백한 초과 |

**코드 품질 (Code Quality · 가독성/스타일)**
| 4 | 3 | 2 | 1 |
|---|---|---|---|
| 깔끔한 구조·명확한 네이밍·중복/매직넘버 없음, 그대로 리뷰 통과 수준 | 동작·읽히나 개선 여지(긴 함수, 약한 네이밍) | 지저분함(중복·과도한 중첩·불명확 변수·죽은 코드) | 읽기 매우 어려움 |

**견고성 (Robustness · 엣지/검증)**
| 4 | 3 | 2 | 1 |
|---|---|---|---|
| 경계·빈입력·중복·최대/최소 스스로 처리·검증 | 엣지 일부 처리 | 기본만 확인 | 검증 없음 |

> take-home 모드는 위 대신 요구사항 충족 / 코드 품질 / 설계 의사결정 / 테스트·문서화 루브릭(각 1~4)으로 채점한다.

## Step 6 · 결과 출력
```markdown
# 코딩 테스트 결과
## 종합 판정: [PASS / REJECT]  (경력 기준: [주니어/미드/시니어])

### 4차원 평가
| 차원 | 점수(1~4) | 코멘트 |
|------|-----------|--------|
| 정확성 | [ ] | [반례/누락 케이스] |
| 효율성 | [ ] | [현재 복잡도 → 목표 복잡도] |
| 코드 품질 | [ ] | [지적: 네이밍·중복·중첩·매직넘버 등 "더럽게 짠" 부분 구체적으로] |
| 견고성 | [ ] | [처리·누락한 엣지] |
**평균: [ ] / 4.0**

### 복잡도 분석
- 제출 코드: 시간 O(...) · 공간 O(...) — [최대입력서 통과/위험]
- 최적: 시간 O(...) · 공간 O(...)

### 코드 스타일 피드백
[가독성·구조 개선 포인트 — 구체적 라인/패턴 지목]

### 개선 포인트
1. [구체적 개선점과 방법]

### 모범 답안  (제출 후 공개)
[접근법 → 코드 → 복잡도]
```

## 주의사항
- **라이브(구두)로 진행하지 않는다.** 코드 제출 → 오프라인 채점. 커뮤니케이션 항목은 평가하지 않는다.
- **복잡도와 코드 스타일을 구체적으로 지적**한다(네이밍·중복·과도한 중첩·매직넘버·죽은 코드 등 "더럽게 짠" 부분).
- 모범 답안은 반드시 풀이 제출 후 공개. take-home은 모범 답안 대신 코드 리뷰형 상세 피드백.
- 1점 차원이 하나라도 있으면 REJECT. "참고 시간"은 측정하지 않는다. 없는 회사 정보를 지어내지 않는다.

<!--
Original skill: techeer-sv/Career-Skills/skills/hiring-sim-coding-test/SKILL.md
Source: https://github.com/techeer-sv/Career-Skills/blob/9a5d83c5d5176cf0f0918a543f443dbac2f67150/skills/hiring-sim-coding-test/SKILL.md
License: MIT

MIT License

Copyright (c) 2025 techeer-sv

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

-->
