사고 · intermediate

오답·실패 케이스 분석

기대값 vs 실제값을 보고, 파싱·논리·경계·복잡도 중 어디인지 나눕니다.

배우기 · 문제 푸는 사고 · 12분 · 4/10 · 사고 · 오답 · 디버그

이 트랙 목차 (10)
  1. 1. 문제 읽기: 입출력·제약·목표
  2. 2. 예제 추적: 손으로 한 스텝
  3. 3. 경계·엣지 케이스 목록화
  4. 4. 오답·실패 케이스 분석
  5. 5. 패턴 고르기: 제약으로 후보 줄이기
  6. 6. 의사코드: 구현 전에 뼈대 쓰기
  7. 7. 시간 상자: 막힐 때 멈추는 규칙
  8. 8. 접근 비교: 브루트 · 해시 · 투포인터
  9. 9. 회귀 확인: 고친 뒤 다시 채점
  10. 10. 작은 테스트 직접 쓰기

이 사이트의 실패 화면

기대값·실제값·힌트가 케이스별로 나옵니다.
감정적으로 “다시 처음부터” 하지 말고 분류하세요.

분류 트리

1. 파싱/형식
- 실제값이 완전히 이상함, 예제조차 실패
- trim, split, 줄 수, 타입 변환부터

2. 오프바이원·경계
- 작은 케이스는 맞고 큰 케이스·끝 인덱스만 실패
- 루프 조건, slice 끝, lo/hi 갱신

3. 논리 오류
- 추적표와 코드 변수가 다름
- 조건 순서 (FizzBuzz류), 잘못된 점화식

4. 중복·정렬 가정
- 같은 값, 순서 불안정
- 정렬 후 인덱스 손상

5. 시간 초과·무한 루프
- Worker 종료
- 진행 조건이 안 변함, O(n²) 과다

한 케이스만 고정

실패 입력을 연습장에 붙여 넣고, 그 케이스만 맞출 때까지 봅니다.
전체 재제출을 반복하면 피드백이 흐려집니다.

최소 수정

한 번에 여러 곳을 고치지 마세요.
파싱을 고쳤으면 파싱만 확인한 뒤, 다음 가설로 넘어갑니다.

통과 후

참고 풀이가 있으면:

만 비교합니다. 베끼지 말고 “왜 저쪽이 짧은지”만 가져가세요.

기록

북마크 + 한 줄 메모(머릿속·메모장):

two-sum: Map으로 보완 · trim 빠뜨림

같은 실수를 줄이는 가장 싼 방법입니다.

3. 로직 버그

고치는 순서

  1. 실패한 가장 작은 케이스를 손으로 재현
  2. 기대 경로와 실제 경로를 한 줄씩 비교
  3. 한 곳만 고치고 다시 실행 (여러 곳을 동시에 바꾸지 않기)
  4. 통과 후 틀렸는지 한 줄로 메모

감정 관리

틀린 부분은 “실력 부족”이 아니라 정보가 부족한 상태입니다.
실패 화면의 실제값이 곧 단서입니다. 그걸 무시하고 전체 리라이트하면 같은 실수를 반복합니다.

관련 짧은 원리

관련 문제