[JS] 백준에서 시간초과가 자꾸 나온다면..?

붕붕·2025년 2월 7일
post-thumbnail

백준 문제를 풀 때 시간 초과가 자꾸 나서 짜증 날 때가 있다. 테스트 케이스는 다 통과하는데 제출하면 시간 초과가 뜨면, 입출력 방식에 문제가 있을 가능성이 높다.

1. 입력 방식 바꾸기

만약 readline 모듈을 사용하고 있다면 바꾸는 게 좋다. 백준에서는 fs 모듈을 권장한다.

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");

입력 방식은 문제에 맞게 조정해야 한다.

•	한 줄 입력 → split(" ")
•	여러 줄 입력 → split("\n")

2. 출력 방식 바꾸기

여러 줄 출력이 필요할 때 console.log()를 반복해서 사용하면 시간 초과가 날 수 있다.

이럴 땐 문자열을 미리 저장해 두었다가 한 번에 출력하는 방식이 더 효율적이다.

let answer = "";
//...로직 작성
answer += 정답 + "\n"

이렇게 answer에 계속 추가한 후 마지막에 한 번만 console.log(answer); 하면 실행 속도가 빨라진다.

3. 백준 풀 때 유용한 도구들

1. BOJ Tester

최근에 나온 도구인데, 써보니까 너무 편했다.

백준 문제 풀 때 VSCode랑 백준을 왔다 갔다 하는 게 귀찮았다면, 이걸 사용하면 VSCode 내에서 문제를 바로 확인하고 테스트 케이스도 실행할 수 있다.

자세한 사용법은 개발자분 블로그 들어가면 볼 수 있다.
백준 더 편하게 푸는 법

2. Testcase AC

반례를 찾아볼 수 있는 사이트다.

📌 Testcase AC

크롬 확장 프로그램을 설치하면 백준 문제를 풀 때 반례가 있는 문제라면 팝업 알림이 뜬다.

사이트에 들어가서 코드 붙여넣고 “반례 찾기”를 누르면 반례를 알려준다.
다만 모든 문제가 있는 건 아니라서 참고해야 한다.

3. Algo Plus

📌 Algo Plus

실제 코딩 테스트 환경처럼 백준 문제를 풀어볼 수 있는 크롬 확장 프로그램이다.
백준에서 직접 풀고 싶다면 이걸 활용하면 된다.

profile
프론트엔드 개발자(가 되고 싶은 대학생)

0개의 댓글