랜덤 출력기

개요


백준 랜덤 문제를 랜덤 언어로 푸는 포스팅을 작성하려는데
랜덤 뽑아내는 기능이 필요해서 자급자족함

구현


1. 설계

백준에 문제가 몇개나 되지? 현시점 전체 문제는 3만개 이상으로 나온다.
웹 크롤링을 통해 최대 숫자를 정할 수 있겠으나 굳이 이딴데 크롤링까지?
최소 1000부터 최대 숫자 지정해서 랜덤 문제 번호를 뽑아내면 되겠다.

언어는 72종 지원한다는데 내가 할 수 있는 언어만 나와야한다.
대충 java, c++, python 3종으로만 하자.

2. HTML 세팅
<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>랜덤 출력기</title>
</head>
<body>
  <h1>랜덤 출력기</h1>

  <label for="maxNumber">최대 숫자 입력 (최소는 1000 고정): </label>
  <input type="number" id="maxNumber" min="1000">
  <button onclick="generateRandomNumbers()">생성하기</button>

  <h3>결과</h3>
  <p>문제 번호: <span id="randomNumber"></span></p>
  <p>언어: <span id="randomLanguage"></span></p>

  <script>
    // 스크립트
    // 언어는 1부터 3까지 랜덤 뽑고 각 숫자에 할당
  </script>
</body>
</html>
3. 스크립트 작성
function generateRandomNumbers() {
  const min = 1000;
  const max = parseInt(document.querySelector('#maxNumber').value);

  // 최대 숫자 예외처리
  if (isNaN(max) || max < min) {
      alert("최소 1000 이상 숫자 입력");
      return;
  }

  // 랜덤 숫자 추출
  const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
  const randomLang = Math.floor(Math.random() * 3) + 1;

  // 결과란에 배치
  document.querySelector('#randomNumber').textContent = randomNum;
  document.querySelector('#randomLanguage').textContent = randomLang === 1 ? 'java' : randomLang === 2 ? 'c++' : 'python';
}

완성


img01

반성


딱히?

코드 확인


직접 해보기

Link to GitHub

Updated: