프로그래머스 LMS

프로그래밍

프로그래머스 CS 매니저2026-04-10
  • 문제의 제목을 입력합니다.

  • 응시자에게 표시되지 않으며, 내부 관리용으로 사용되는 제목입니다.

    • 예시) 머쓱이 대회 A부문 - 1번 문제

  • 한국어/영어를 선택해 각 언어에 맞는 제목과 지문 등을 입력할 수 있습니다.

  • 시험 생성 시 설명 언어로 한국어와 영어를 모두 지정하기 위해서는 추가된 모든 문제에 대해 한국어/영어 모두 제목과 지문, 보기 등이 입력되어야 합니다.

  • 만약 반드시 영어 지문이 나와야한다면, 한국어/영어 모두 영어로 내용을 작성해주셔도 무방합니다.

  • 문제 설명은 한국어와 영어 두 가지 버전으로 작성할 수 있습니다. 한국어 또는 영어 중 최소 한 가지는 작성해야 합니다.

  • 입력 폼은 마크다운 문법을 지원하여 코드, 이미지, 테이블 등을 표현할 수 있습니다. 

  • 문제 설명은 최대한 친절하고 구체적으로 설명해주어야 합니다.

  • 설명에는 다음 내용을 포함하는 것을 권장합니다.

    1. 요구사항 : 어떤 Input이 들어오며, 어떤 Output을 내야 하는지 알려주세요.

    2. 제한조건 : 다음과 같은 사항이 나와야 합니다.

      A. 범위의 하한과 상한

      ex) N은 -100이상 100이하인 정수입니다.

      ex) 문자열/배열의 길이는 1이상 300,000 이하입니다.

      B. 원소의 범위 ex)문자열은 소문자로만 이루어져 있습니다.

      ex) 배열의 원소는 1 이상 4,000 이하인 자연수입니다.

      C. 기타 안내 사항 (해당되는 경우 안내) ex)배열에는 겹치는 원소가 없습니다.

      ex) 배열의 원소는 [a,b]형식이며 a는 이름을 b는 무게를 의미합니다.

    3. 예시 설명 : 지원자의 이해를 도울 수 있도록 입력과 출력에 대한 예시를 알려주세요.

      ex) [1,2,3,4]가 주어진 경우 각 원소의 합인 10을 리턴하세요.

  • 텍스트 크기를 조절하고 이미지 및 링크, 표를 삽입할 수 있습니다.

  • </>와, CB는 각각 인라인 코드, 코드 블럭을 나타냅니다.

  • 줄바꿈은 허용되지 않으며, 필요한 경우 지문을 이미지로 삽입할 수 있습니다.

  • 보안 이슈로 실제 문제 페이지에서는 html이 작동하지 않습니다.

    마크다운 방식과 편집기의 기능을 활용하여 작성해 주세요.

    → 마크다운 작성법

  • 수식 입력은 레이텍(latex) 문법을 사용합니다.

    수식 입력 시 가장 첫째 줄 ``` 옆에 latex를 입력 후 다음 줄 부터 수식을 입력합니다.

    → 레이텍(latex) 문법이란?

문제에 이미지 삽입하기

  • 문제 지문에만 이미지를 삽입할 수 있습니다. (보기에는 이미지 삽입 불가)

  • 이미지 파일을 직접 업로드 하시어 출제하실 것을 권장 드립니다.

    외부 링크 이미지 업로드 혹은 이미지 붙여넣기는 권장드리지 않습니다.


  • 문제 유형과 문제 타입을 선택합니다.


  • Input, Output 형식을 선택해 주세요.

1) 매개변수의 개수와 각 매개변수의 타입, 이름을 지정해주세요.

  • 매개변수의 타입과 이름은 지원자의 초기 코드에 반영됩니다.

  • 매개변수 이름은 지문에 주어진 것과 일치하는 편이 좋습니다.

  • 매개변수 이름은 함수 이름과 겹치지 않는 것이 좋습니다.

    ex) str은 Python의 형변환 함수 이름입니다. 따라서 이 이름은 변수 명으로 적절하지 않습니다. (실제 응시자로부터 민원 들어온 경우가 있음)

2) Return 타입을 지정해주세요.

3) 매개변수 및 Return의 데이터 타입 범위

타입

크기

범위

int

4 Byte

–2,147,483,648 ~ 2,147,483,647

string

-

-

bool

1 Byte

false 또는 true

long

8 Byte

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

double

8 Byte

(1.7 X 10^-308) ~ (1.7 X 10^308) (15개의 자릿수)


  • 응시자가 사용할 언어를 선택합니다.

  • 특정 언어를 활성화/비활성화 하거나 모든 언어를 활성화할 수 있습니다.

    • 각 언어별로 초기 코드, 예상 정답 코드, 테스트 케이스를 입력해야 합니다.

    • 토글 버튼을 누르면 초기 코드(지원자에게 제공되는 템플릿 코드)가 자동으로 생성됩니다.

  • 예상 정답 코드 입력하기

    • 정답 코드를 입력해 주세요.

    • 정답 코드는 다음 단계에서 입력할 테스트 케이스를 검증할 때 쓰입니다.

    • 지원 언어를 여럿 선택했더라도, 정답 코드는 한 언어에만 등록 해주시면 됩니다.

      단, 다음 단계에서 효율성 테스트 케이스를 등록하는 경우는 예외이며, 이에 대해서는 다음 단계에서 설명합니다.


예시 테스트 케이스란?

  • 지원자에게 공개되는 샘플 테스트 케이스입니다.

  • 예시 테스트 케이스는 지원자의 점수에 영향을 미치지 않습니다.

  • 해당 테스트 케이스를 등록하려면 테스트 케이스 추가 버튼을 눌러주세요.

  • 예시 테스트 케이스가 너무 많으면 지원자가 문제를 너무 쉽게 풀어버립니다.

  • 테스트 케이스 등록 양식

  • 예시 테스트 케이스 등록 팁

    1. 예시 테스트 케이스는 1개 이상 5개 이하로 등록 해주세요.

      • 예시 테스트 케이스가 너무 적으면 지원자가 문제를 이해하기 어렵습니다.

      • 예시 테스트 케이스가 너무 많으면 지원자가 문제를 너무 쉽게 풀어버립니다.

    2. 예시 테스트 케이스에는 크기나 범위가 작은 값을 넣는 것을 권장합니다.

      • Good : 5와 같이 적은 숫자, [3, 10, 7, 20]과 같이 짧은 배열 등

      • Bad : 100,000,000 등 큰 숫자, 길이가 100 이상인 긴 배열 등


정확성 테스트 케이스란?

  • "지원자의 코드가 얼마나 요구사항을 잘 만족했는지" 를 체크하는 용도로 사용합니다.

  • 정확성 테스트 케이스는 지원자의 점수에 반영되며, 내용물은 지원자에게 공개되지 않습니다.

  • 해당 테스트 케이스의 제한시간은 10초입니다.

  • 지원자의 코드가 제한시간(10초) 내에 정답을 return 하지 않으면 오답으로 간주됩니다.

  • 정확성 테스트 케이스를 등록하려면 테스트 케이스 추가 버튼을 눌러주세요.

  • 해당 테스트 케이스는 예시 테스트 케이스와는 달리, 배점을 입력해 주셔야 합니다.

  • 정확성 테스트 케이스로 구성된 서브태스크를 추가할 수 있습니다.(선택)

  • 정확성 테스트 케이스 등록 팁!

    1. 정확성 테스트 케이스는 10개 이상 30개 이하를 권장합니다.

    2. 보편적인 상황 및 다양한 상황을 고려하여 데이터를 등록해주세요.

      ex) 경계값에 해당되는 데이터를 입력하기 / 음수, 0, 길이가 1인 배열이 주어지는 경우

      ex) 정렬된 배열이 들어오는 경우, 정렬되지 않은 배열이 들어오는 경우 등

    3. 단, 입력 값이 지문의 제한사항을 벗어나지 않게 해주세요.

      ex) 지문에서 1 이상 100 이하인 수가 주어진다고 했다면 0, -1과 같은 수를 입력하면 안됨.

    4. return 값이 한쪽으로 쏠리지 않도록 주의해주세요.

      ex) 테스트 케이스 10개 중 답이 0인 경우가 7개 (X) boolean을 리턴하는 문제는 true, false 의 비율을 1:1로 맞추는 것을 권장합니다.


효율성 테스트 케이스란?

  • "지원자가 시간 복잡도를 고려해 코드를 작성하였는지" 체크하는 용도로 사용합니다.

  • 효율성 테스트 케이스는 지원자의 점수에 반영되며, 내용물은 지원자에게 공개되지 않습니다.

  • 해당 테스트 케이스의 제한 시간은 언어별로 다르게 설정되므로, 모든 언어에 대해 정답 코드가 있어야 합니다.

  • 효율성 테스트 케이스를 등록하려면 테스트 케이스 추가 버튼을 눌러주세요.

  • 테스트 케이스를 입력한 후, Timeout 계산 버튼을 눌러 제한 시간을 측정해 주세요.

  • 제한 시간은 (정답 코드 실행 시간)x(배수) 로 설정됩니다.

  • 효율성 테스트 케이스 등록 팁

    1. 효율성 테스트 케이스는 0개 이상 5개 이하가 좋습니다. 경우에 따라 등록하지 않아도 됩니다.

    2. 정답 코드의 시간 복잡도가 충분히 작은지 확인해 주세요. ex) 정답 코드의 시간 복잡도가 크다면 제한 시간을 설정하는 의미가 없겠지요.

    3. 큰 테스트 케이스만을 등록해주세요. 작은 값을 입력하면 시간 복잡도를 측정하기 어렵습니다. ex) 배열의 경우, 보통 길이가 100,000 이상인 배열만을 등록

    4. 단, 입력 값이 지문의 제한 사항을 벗어나지 않게 해주세요.

      ex) 지문에서 배열의 길이가 100 이하라 했는데 길이가 100,000 인 배열을 등록한 경우(X)


  • 문제를 미리보기 할 수 있습니다.

  • 프로그래밍 문제를 다 만들었다면, 문제가 잘 만들어졌는지 검수를 해야합니다.

    검수는 문제 제작자가 아닌 다른 사람이 하는 것을 권장합니다.

  • 문제 검수 체크리스트

구분

검수 사항

비고

지문

지문이 이해하기 쉽게 적혀있습니까?

지문

지문에 서로 위배되는 조건이 있지는 않습니까?

ex) 자연수가 주어진다고 했는데 0이나 -1이 주어지는 경우 등

지문

예시의 리턴 값과 이에 대한 설명이 정확합니까?

지문

테스트 화면에서 지문이 잘 보입니까?

문제 추가 화면에서 보이는 것과 달리, 테스트 화면에서는 지문이 어그러져 보일 수 있음

테스트 케이스

지문과 서로 위배되는 데이터가 있지는 않습니까?

ex) 자연수가 주어진다고 했는데 0이나 -1이 주어지는 경우 등

테스트 케이스

예시 테스트 케이스와 지문에 주어진 예시와 같습니까?

응시자의 혼동을 방지하기 위해 지문에 언급된 예시와 예시 테스트 케이스는 일치시키는 것을 권장

테스트 케이스

문제를 풀 수 있습니까?

단, 문제 제작자의 정답 코드를 보지 않은 상태에서 풀어야 함

테스트 케이스

보강해야 할 테스트 케이스는 없습니까?

테스트 케이스

테스트 케이스가 한쪽으로 치우쳐지지 않았습니까?

ex) 답이 0인 테스트 케이스가 너무 많은 경우 등