사이트 쓰다가 헷갈릴 만한 것들 몇 개만 짚고 갈게요 🙂
🔍 반례 찾기
"저장 / 반례찾기" 탭의 🔍 반례 찾기 버튼은 testcase.ac에 등록된 문제에 한해서, 거기 스트레스 테스트로 반례를 찾아줘요. 등록 안 된 문제는 "반례 탐색 불가"로 떠요.
⚠️ testcase.ac에 등록된 문제라도 유한한 횟수만 시도해보는 거예요. "반례를 못 찾았다"가 곧 "정답이 확실하다"는 뜻은 아니니 참고만 해주세요!
💾 백준에 저장
에디터에 있는 코드를 서버에 저장해줘요. 저장해두면 나중에 같은 문제로 돌아왔을 때
에디터 위쪽 드롭다운에서 다시 불러올 수 있어요. 여러 번 저장하면 풀이 이력이
전부 남고, 메모(선택)로 구분할 수도 있어요.
메모에 아무것도 쓰지않으면 코드 제목에 풀었던 날짜와 시간이 들어가요.
💡 자동으로 저장되는 임시저장이랑은 달라요 — 임시저장은 브라우저 나가도 하던 작업을 이어서 볼 수 있게 해주는 용도고, "저장"을 눌러야 풀이 이력으로 정식으로 남아요.
⏱ 시간복잡도는 안 잡힘
"실행" 탭의 통과/실패는 코드를 진짜로 돌려서 정답과 걸린 시간을 재는 방식이에요. 빅오(Big-O) 같은 정적 분석은 따로 안 해줘요. 그래서:
- 비효율적인 풀이도 입력이 작으면 그냥 시간 안에 통과할 수 있어요.
- 반대로 로컬 채점 시간제한은 문제에 적힌 시간제한의 3배를 그대로 쓰다 보니, 실제 저지였으면 TLE 났을 코드가 여기선 통과하기도 해요.
💡 "통과했다"를 최적 풀이의 증거로 삼지 말고, 시간복잡도는 스스로 한 번 따져보는 게 정확해요.
🧑💻 Python / Java / C++ / JavaScript 지원
코드 에디터 위쪽 드롭다운에서 언어를 고를 수 있어요. Python 3, Java, C++, JavaScript 네 가지를 지원하고, 언어를 바꿔도 각자 쓰던 코드는 따로 보관되니 서로 안 지워져요.
- Java는 반드시
public class Main을 유지해야 컴파일돼요(자바 규칙상 클래스명이 파일명이랑 같아야 해서 어쩔 수 없어요). 컴파일 자체가 안 되면 "컴파일 에러"로 따로 표시돼요. - C++는
g++ -std=c++17로 컴파일해요. Java와 달리 클래스명 제약은 없어요. - JavaScript는 Node.js로 실행돼요. 표준입력은
fs.readFileSync(0, "utf8")로 읽으면 돼요(기본 템플릿에 이미 들어있어요).
⚠️ 🔍 반례 찾기는 Python 코드에만 지원돼요. Java, C++, JavaScript를 선택하면 반례 찾기 버튼이 비활성화돼요 — testcase.ac 연동이 Python 코드를 전제로 동작하게 짜여있어서 그래요.
💡 Java/C++는 실행 전에 따로 컴파일하는 과정이 껴서, JavaScript는 실행할 때마다 Node를 새로 켜야 해서 Python보다 느리게 느껴질 수 있어요.
그 외 기능
- ▶ 실행 탭 — 예제(샘플)가 자동으로 채워지고, 테스트 케이스를 직접 추가해서 자유롭게 테스트할 수 있어요. 내가 넣은 테스트 케이스 기준으로만 통과/실패를 보여주는 거지, 따로 숨겨진 채점용 테스트 케이스가 있는 건 아니에요.
- ⭐ 즐겨찾기 — 문제 페이지 제목 옆 별 아이콘 누르면 돼요. 목록에서 즐겨찾기한 것만 모아볼 수도 있어요.
- 🛠 문제 만들기 — 내가 직접 문제를 만들어서 풀어볼 수 있어요. 근데 나만 볼 수 있고 다른 사람한텐 공유 안 돼요 (연습용).
- 📊 통계 — 내가 푼 문제 수, 레벨/EXP, 태그·난이도 분포, 히트맵 이런 거 보여줘요.
- 🏆 랭킹 — 친구들이랑 레벨/EXP로 순위 겨루는 곳이에요. 내 순위 남한테 안 보이고 싶으면 랭킹 페이지에서 "내 순위 공개" 체크만 끄면 돼요.
- 💬 피드백 — 버그든 불편한 거든 아이디어든, 카톡이나 이메일 (hmya5789@gmail.com)로 편하게 알려주세요!