이 사이트의 실패 화면
기대값·실제값·힌트가 케이스별로 나옵니다.
감정적으로 “다시 처음부터” 하지 말고 분류하세요.
분류 트리
1. 파싱/형식
- 실제값이 완전히 이상함, 예제조차 실패
- trim, split, 줄 수, 타입 변환부터
2. 오프바이원·경계
- 작은 케이스는 맞고 큰 케이스·끝 인덱스만 실패
- 루프 조건, slice 끝, lo/hi 갱신
3. 논리 오류
- 추적표와 코드 변수가 다름
- 조건 순서 (FizzBuzz류), 잘못된 점화식
4. 중복·정렬 가정
- 같은 값, 순서 불안정
- 정렬 후 인덱스 손상
5. 시간 초과·무한 루프
- Worker 종료
- 진행 조건이 안 변함, O(n²) 과다
한 케이스만 고정
실패 입력을 연습장에 붙여 넣고, 그 케이스만 맞출 때까지 봅니다.
전체 재제출을 반복하면 피드백이 흐려집니다.
최소 수정
한 번에 여러 곳을 고치지 마세요.
파싱을 고쳤으면 파싱만 확인한 뒤, 다음 가설로 넘어갑니다.
통과 후
참고 풀이가 있으면:
- 내 풀이와 같은 아이디어인지
- 더 짧은 경계 처리가 있는지
- 자료구조 선택이 다른지
만 비교합니다. 베끼지 말고 “왜 저쪽이 짧은지”만 가져가세요.
기록
북마크 + 한 줄 메모(머릿속·메모장):
two-sum: Map으로 보완 · trim 빠뜨림
같은 실수를 줄이는 가장 싼 방법입니다.
3. 로직 버그
- 예제는 맞고 히든만 실패 → 정렬 가정, 중복, 오버플로, 시간 초과급 비효율
- 부분만 맞음 → 누락 분기, 갱신 시점(
ivsi+1)
고치는 순서
- 실패한 가장 작은 케이스를 손으로 재현
- 기대 경로와 실제 경로를 한 줄씩 비교
- 한 곳만 고치고 다시 실행 (여러 곳을 동시에 바꾸지 않기)
- 통과 후 왜 틀렸는지 한 줄로 메모
감정 관리
틀린 부분은 “실력 부족”이 아니라 정보가 부족한 상태입니다.
실패 화면의 실제값이 곧 단서입니다. 그걸 무시하고 전체 리라이트하면 같은 실수를 반복합니다.