1. 변수
  2. 자료형
  3. 연산자
  4. 표준입출력
  5. 파일입출력
  6. 반복문
  7. 조건문
  8. 1차원 리스트
  9. 2차원 리스트
  10. 함수의 활용
  11. 탐색
  12. 정렬
  13. 알고리즘
[
  {
    "title": "두 변수를 곱하는 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "변수",
    "difficulty": 1,
    "problemContent": {
      "content": "변수 x와 y를 곱한 결과를 저장하고 출력하세요.\nx = 3\ny = 4\nz = $blank1$ * y\nprint($blank2$)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "x"
      },
      {
        "choiceText": "12"
      },
      {
        "choiceText": "5"
      },
      {
        "choiceText": "8"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "x"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "12"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "실수형으로 변환",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "변수 x와 y의 합을 실수형으로 변환하여 출력하세요.\nx = 10\ny = 3.14\nz = $blank1$(x + y)\nprint(z)",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "float"
      },
      {
        "choiceText": "int"
      },
      {
        "choiceText": "str"
      },
      {
        "choiceText": "bool"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "float"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "문자열로 변환",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "이름과 나이를 문자열로 변환하여 출력하세요.\n이름 = 'Alice'\n나이 = 25\n정보 = '이름: ' + $blank1$ + ', 나이: ' + $blank2$(age)\nprint(info)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "name"
      },
      {
        "choiceText": "str"
      },
      {
        "choiceText": "age"
      },
      {
        "choiceText": "int"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "name"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "str"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "두 수의 합",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "연산자",
    "difficulty": 1,
    "problemContent": {
      "content": "변수 x와 y의 합을 출력하세요.\nx = 5\ny = 2\nz = x $blank1$ y\nprint(z)",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "+"
      },
      {
        "choiceText": "-"
      },
      {
        "choiceText": "*"
      },
      {
        "choiceText": "/"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "+"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "두 수의 나눗셈",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "연산자",
    "difficulty": 2,
    "problemContent": {
      "content": "변수 x와 y의 나눈 값과 나머지를 출력하세요.\nx = 10\ny = 3\nz = x $blank1$ y\n나머지 = x $blank2$ y\nprint(z, remainder)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "/"
      },
      {
        "choiceText": "%"
      },
      {
        "choiceText": "+"
      },
      {
        "choiceText": "-"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "/"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "%"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "사용자로부터 입력받아 인사하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "표준입출력",
    "difficulty": 3,
    "problemContent": {
      "content": "# 사용자로부터 이름을 입력받아 인사말을 출력하는 코드를 완성하세요.\nname = $blank1$\nprint('Hello,', name)",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "input()"
      },
      {
        "choiceText": "read()"
      },
      {
        "choiceText": "scan()"
      },
      {
        "choiceText": "get()"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "input()"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "1부터 5까지 숫자 출력하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "반복문",
    "difficulty": 2,
    "problemContent": {
      "content": "1부터 5까지의 숫자를 출력하는 코드를 완성하세요.\nfor i in $blank1$(1, $blank2$):\n    print(i)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "range"
      },
      {
        "choiceText": "6"
      },
      {
        "choiceText": "1"
      },
      {
        "choiceText": "5"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "range"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "6"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트의 모든 요소 출력하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "반복문",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 리스트의 모든 요소를 출력하는 코드를 완성하세요.\nfruits = ['apple', 'banana', 'cherry']\nfor $blank1$ in $blank2$:\n    print(fruit)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "fruit"
      },
      {
        "choiceText": "fruits"
      },
      {
        "choiceText": "i"
      },
      {
        "choiceText": "range"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "fruit"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "fruits"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "양수인지 음수인지 판별하는 조건문",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "조건문",
    "difficulty": 2,
    "problemContent": {
      "content": "입력된 숫자가 양수인지 음수인지 판별하는 조건문을 완성하세요.\nnum = int(input('숫자를 입력하세요: '))\nif num > 0:\n    print('$blank1$')\nelse:\n    print('$blank2$')",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "'양수'"
      },
      {
        "choiceText": "'음수'"
      },
      {
        "choiceText": "'0'"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "'양수'"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "'음수'"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "1차원 리스트에서 첫 번째 요소 출력",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "1차원 리스트",
    "difficulty": 1,
    "problemContent": {
      "content": "주어진 리스트의 첫 번째 요소를 출력하는 코드를 완성하세요.\nfruits = ['apple', 'banana', 'cherry']\nprint($blank1$[0])",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "fruits"
      },
      {
        "choiceText": "fruit"
      },
      {
        "choiceText": "0"
      },
      {
        "choiceText": "'apple'"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "fruits"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "1차원 리스트에 요소 추가하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "fruits 리스트에 'cherry'를 추가하는 코드를 완성하세요.\nfruits = ['apple', 'banana']\nfruits.$blank1$('$blank2$')\nprint(fruits)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "append"
      },
      {
        "choiceText": "'cherry'"
      },
      {
        "choiceText": "insert"
      },
      {
        "choiceText": "'orange'"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "append"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "'cherry'"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "2차원 리스트 순회",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "2차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "2차원 리스트의 모든 요소를 순서대로 순회하며 출력하는 코드를 완성하세요.\nmatrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\nfor row in matrix:\n    for $blank1$ in $blank2$:\n        print(num, end=' ')\n    print()",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "num"
      },
      {
        "choiceText": "row"
      },
      {
        "choiceText": "col"
      },
      {
        "choiceText": "matrix"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "num"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "row"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "두 수를 더하는 함수",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "함수의 활용",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 두 수를 더하는 함수를 호출하여 결과를 출력하세요.\ndef add(a, b):\n    return a + b\nresult = $blank1$($blank2$, 10)\nprint(result)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "add"
      },
      {
        "choiceText": "5"
      },
      {
        "choiceText": "multiply"
      },
      {
        "choiceText": "sub"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "add"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "5"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "두 수를 곱하는 함수",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "함수의 활용",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 두 수를 곱한 값을 반환하는 함수를 완성하세요.\ndef multiply(a, b):\n    $blank1$ a $blank2$ b\n\nresult = multiply(5, 3)\nprint(result)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "return"
      },
      {
        "choiceText": "*"
      },
      {
        "choiceText": "="
      },
      {
        "choiceText": "+"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "return"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "*"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "탐색 문제 1",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "탐색",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 리스트에서 30의 인덱스를 찾는 코드를 완성하세요.\nnumbers = [10, 20, 30, 40, 50]\nindex = $blank1$.index($blank2$)\nprint(index)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "numbers"
      },
      {
        "choiceText": "30"
      },
      {
        "choiceText": "index"
      },
      {
        "choiceText": "find"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "numbers"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "30"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "탐색 문제 2",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "탐색",
    "difficulty": 2,
    "problemContent": {
      "content": "리스트에 10이 존재하는지 확인하는 코드를 완성하세요.\nnumbers = [5, 10, 15, 20, 25]\nif $blank1$ in $blank2$:\n    print('찾았다!')",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "10"
      },
      {
        "choiceText": "numbers"
      },
      {
        "choiceText": "not"
      },
      {
        "choiceText": "exists"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "10"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "numbers"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "오름차순 정렬",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "정렬",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 리스트를 오름차순으로 정렬하는 코드를 완성하세요.\nnumbers = [50, 20, 40, 10, 30]\nnumbers.$blank1$()\nprint(numbers)",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "sort"
      },
      {
        "choiceText": "reverse"
      },
      {
        "choiceText": "append"
      },
      {
        "choiceText": "order"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "sort"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "내림차순 정렬",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "정렬",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 리스트를 내림차순으로 정렬하는 코드를 완성하세요.\nnumbers = [5, 15, 25, 35, 45]\nnumbers.sort($blank1$=$blank2$)\nprint(numbers)",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "reverse"
      },
      {
        "choiceText": "True"
      },
      {
        "choiceText": "False"
      },
      {
        "choiceText": "key"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "reverse"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "True"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
      "title": "문자열 슬라이싱 문제",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "자료형",
      "difficulty": 1,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\ns = 'Python Programming'\nprint(s[0:6])",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "Python"
          }
      ]
  },
  {
      "title": "조건문 문제",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 1,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nx = 10\ny = 20\nif x < y:\n    print('1')\nelse:\n    print('2')",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "1"
          }
      ]
  },
  {
      "title": "리스트 합계 문제",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "1차원 리스트",
      "difficulty": 1,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [10, 20, 30, 40, 50]\nprint(sum(numbers))",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "150"
          }
      ]
  },
  {
      "title": "딕셔너리 값 접근 문제",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "자료형",
      "difficulty": 1,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nstudent = {'name': 'Alice', 'age': 20, 'grade': 'A'}\nprint(student['grade'])",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "A"
          }
      ]
  },
  {
      "title": "리스트와 반복문 사용",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "1차원 리스트",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [1, 2, 3, 4, 5]\nsum = 0\nfor num in numbers:\n    sum += num\nprint(sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "15"
          }
      ]
  },
  {
      "title": "리스트 기본 접근",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "1차원 리스트",
      "difficulty": 1,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nfruits = ['apple', 'banana', 'cherry']\nprint(fruits[0])",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "apple"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "1차원 리스트",
      "difficulty": 1,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [1, 2, 3]\nprint(sum(numbers))",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "6"
          }
      ]
  },
  {
      "title": "리스트 최소값",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "1차원 리스트",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [3, 1, 4, 1, 5, 9]\nprint(min(numbers))",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "1"
          }
      ]
  },
  {
      "title": "리스트 최대값",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "1차원 리스트",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [3, 1, 4, 1, 5, 9]\nprint(max(numbers))",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "9"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\neven_sum = 0\nfor num in numbers:\n    if num % 2 == 0:\n        even_sum += num\nprint(even_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "30"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [10, 15, 20, 25, 30, 35, 40]\nfive_multiple_sum = 0\nfor num in numbers:\n    if num % 5 == 0:\n        five_multiple_sum += num\nprint(five_multiple_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "175"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [-5, -3, -1, 2, 4, 6, -8, 10]\nnegative_sum = 0\nfor num in numbers:\n    if num < 0:\n        negative_sum += num\nprint(negative_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "-17"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 3,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [1, 3, 6, 9, 12, 15, 18, 21]\nthree_multiple_sum = 0\nfor num in numbers:\n    if num % 3 == 0:\n        three_multiple_sum += num\nprint(three_multiple_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "84"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 3,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]\neven_index_sum = 0\nfor i in range(len(numbers)):\n    if i % 2 == 0:\n        even_index_sum += numbers[i]\nprint(even_index_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "250"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 3,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]\nodd_index_sum = 0\nfor i in range(len(numbers)):\n    if i % 2 != 0:\n        odd_index_sum += numbers[i]\nprint(odd_index_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "300"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 3,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]\neven_index_sum = 0\nfor i in range(len(numbers)):\n    if i % 2 == 0:\n        even_index_sum += numbers[i]\nprint(even_index_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "50"
          }
      ]
  },
  {
      "title": "리스트 합",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "조건문",
      "difficulty": 3,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]\nodd_index_sum = 0\nfor i in range(len(numbers)):\n    if i % 2 != 0:\n        odd_index_sum += numbers[i]\nprint(odd_index_sum)",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "60"
          }
      ]
  },
  {
      "title": "문자열 슬라이싱",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "자료형",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\ntext = 'Programming'\nprint(text[-4:])",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "ming"
          }
      ]
  },
  {
      "title": "문자열 슬라이싱",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "자료형",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\ntext = 'Python Programming'\nprint(text[:5])",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "Pytho"
          }
      ]
  },
  {
      "title": "문자열 슬라이싱",
      "problemType": "SHORT_ANSWER_QUESTION",
      "category": "자료형",
      "difficulty": 2,
      "problemContent": {
          "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\ntext = 'SSAFY'\nprint(text[::-1])",
          "numberOfBlanks": 0
      },
      "problemChoices": [],
      "problemAnswers": [
          {
              "blankPosition": null,
              "correctChoice": null,
              "correctAnswerText": "YFASS"
          }
      ]
  },
    {
        "title": "문자열 길이 계산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "표준입출력",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nname = input('이름을 입력하세요: ')\nprint(len(name))\n\n입력: John",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "4"
            }
        ]
    },
    {
        "title": "리스트 인덱싱 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "1차원 리스트",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [1, 2, 3, 4, 5]\nprint(arr[2])",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "3"
            }
        ]
    },
    {
        "title": "리스트 정렬 후 중간 값 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "정렬",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [3, 0, 2, 5, -1, 4, 1]\narr.sort()\nprint(arr[3])",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "2"
            }
        ]
    },
    {
        "title": "리스트 정렬 후 최대값 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "정렬",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [10, 7, 8, 9, 1, 5]\narr.sort()\nprint(arr[-1])",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "10"
            }
        ]
    },
    {
        "title": "두 수의 합 입력 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "표준입출력",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\na = int(input('첫 번째 수: '))\nb = int(input('두 번째 수: '))\nprint(a + b)\n\n입력: 3, 4",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "7"
            }
        ]
    },
    {
        "title": "변수 제곱 계산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "변수",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nx = 5\nprint(x**2)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "25"
            }
        ]
    },
    {
        "title": "변수 간 연산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "변수",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\na = 10\nb = 20\nprint(a + b / 10 * 2)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "14"
            }
        ]
    },
    {
        "title": "정수 나눗셈 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "연산자",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\na = 15\nb = 4\nprint(a // b)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "3"
            }
        ]
    },
    {
        "title": "나머지 연산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "연산자",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nx = 10\nprint(x % 3)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "1"
            }
        ]
    },
    {
        "title": "리스트 길이 계산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "1차원 리스트",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnumbers = [10, 20, 30, 40, 50]\nprint(len(numbers))",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "5"
            }
        ]
    },
    {
        "title": "리스트 정렬 후 두 번째 큰 값 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "정렬",
        "difficulty": 3,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [64, 25, 12, 22, 11]\narr.sort()\nprint(arr[-2])",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "25"
            }
        ]
    },
    {
        "title": "입력받은 수의 제곱 계산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "표준입출력",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnum = int(input('숫자를 입력하세요: '))\nprint(num ** 2)\n\n입력: 1",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "1"
            }
        ]
    },
    {
        "title": "문자열 덧셈 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "변수",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\ns = 'Hello'\nprint(s+'!')",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "Hello!"
            }
        ]
    },
    {
        "title": "리스트 마지막 요소 계산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "1차원 리스트",
        "difficulty": 3,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nelements = [5, 10, 15, 20]\nprint(elements[len(elements)-1] * 2)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "40"
            }
        ]
    },
    {
        "title": "변수의 거듭제곱 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "변수",
        "difficulty": 1,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nx = 5\nprint(x**1)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "5"
            }
        ]
    },
    {
        "title": "입력받은 수의 홀짝 판단 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "표준입출력",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nnum = int(input('숫자를 입력하세요: '))\nprint(num % 2)\n\n입력: 5",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "1"
            }
        ]
    },
    {
        "title": "리스트 정렬 후 두 수의 합 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "정렬",
        "difficulty": 3,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [10, 7, 8, 9, 1, 5]\narr.sort()\nprint(arr[-1] + arr[1])",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "15"
            }
        ]
    },
    {
        "title": "문자열 길이의 제곱 계산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "표준입출력",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\nname = input('이름을 입력하세요: ')\nprint(len(name)**2)\n\n입력: John",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "16"
            }
        ]
    },
    {
        "title": "리스트 정렬 후 세 요소의 합 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "정렬",
        "difficulty": 4,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [64, 25, 12, 22, 11]\narr.sort()\nprint(arr[0]+arr[-1]+arr[1])",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "87"
            }
        ]
    },
    {
        "title": "거듭제곱 연산 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "연산자",
        "difficulty": 3,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\na = 7\nb = 3\nprint(a ** b)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "343"
            }
        ]
    },
    {
        "title": "리스트 요소 곱셈 문제",
        "problemType": "SHORT_ANSWER_QUESTION",
        "category": "1차원 리스트",
        "difficulty": 2,
        "problemContent": {
            "content": "# 다음 코드를 실행했을 때 출력될 값을 적으시오.\narr = [1, 2, 3, 4, 5]\nprint(arr[2]*2)",
            "numberOfBlanks": 0
        },
        "problemChoices": [],
        "problemAnswers": [
            {
                "blankPosition": null,
                "correctChoice": null,
                "correctAnswerText": "6"
            }
        ]
    },
  {
    "title": "연산자 우선순위",
    "problemType": "MULTIPLE_CHOICE",
    "category": "연산자",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 중 연산자 우선순위에 따라 올바르게 계산된 결과는 무엇입니까? (a = 5, b = 10, c = 3)",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "a + b * c = 35"
      },
      {
        "choiceText": "a + b * c = 45"
      },
      {
        "choiceText": "(a + b) * c = 45"
      },
      {
        "choiceText": "a * b + c = 80"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "a + b * c = 35"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
  "title": "파일에 문자열 쓰기",
  "problemType": "MULTIPLE_CHOICE",
  "category": "파일입출력",
  "difficulty": 3,
  "problemContent": {
    "content": "파일에 문자열을 쓰는 올바른 방법은 무엇입니까?",
    "numberOfBlanks": 0
  },
  "problemChoices": [
    {
      "choiceText": "file = open('text.txt', 'w');\n file.write('Hello, World!');\n file.close()"
    },
    {
      "choiceText": "file = open('text.txt', 'r');\n file.write('Hello, World!');\n file.close()"
    },
    {
      "choiceText": "file = open('text.txt', 'a');\n file.read('Hello, World!');\n file.close()"
    },
    {
      "choiceText": "file = open('text.txt', 'w');\n file.read('Hello, World!');\n file.close()"
    }
  ],
  "problemAnswers": [
    {
      "blankPosition": null,
      "correctChoice": {
        "choiceText": "file = open('text.txt', 'w');\n file.write('Hello, World!');\n file.close()"
      },
      "correctAnswerText": null
    }
  ]
},
  {
    "title": "조건문을 이용한 숫자 범위 확인",
    "problemType": "MULTIPLE_CHOICE",
    "category": "조건문",
    "difficulty": 2,
    "problemContent": {
      "content": "숫자가 10과 20 사이에 있는지 확인하는 올바른 조건문은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "if x >= 10 and x <= 20:"
      },
      {
        "choiceText": "if 10 < x < 20:"
      },
      {
        "choiceText": "if 10 <= x <= 20:"
      },
      {
        "choiceText": "if x > 10 and x < 20:"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "if x >= 10 and x <= 20:"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트에서 중복 요소 제거",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 4,
    "problemContent": {
      "content": "주어진 리스트에서 중복된 요소를 제거하여 새로운 리스트를 반환하는 올바른 방법은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "new_list = list(set(old_list))"
      },
      {
        "choiceText": "new_list = set(old_list)"
      },
      {
        "choiceText": "new_list = old_list.remove_duplicates()"
      },
      {
        "choiceText": "new_list = [x for x in old_list if x not in new_list]"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "new_list = list(set(old_list))"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "2차원 리스트의 크기 구하기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "2차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "2차원 리스트의 행과 열의 수를 반환하는 올바른 방법은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "rows = len(matrix);\n cols = len(matrix[0])"
      },
      {
        "choiceText": "rows = len(matrix[0]);\n cols = len(matrix)"
      },
      {
        "choiceText": "rows, cols = len(matrix)"
      },
      {
        "choiceText": "rows = matrix.len();\n cols = matrix[0].len()"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "rows = len(matrix);\n cols = len(matrix[0])"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
  "title": "이진 탐색의 시간 복잡도",
  "problemType": "MULTIPLE_CHOICE",
  "category": "탐색 알고리즘",
  "difficulty": 4,
  "problemContent": {
    "content": "이진 탐색(Binary Search) 알고리즘을 사용하여 정렬된 배열에서 요소를 검색할 때의 시간 복잡도는 무엇입니까?",
    "numberOfBlanks": 0
  },
  "problemChoices": [
    {
      "choiceText": "O(log n)"
    },
    {
      "choiceText": "O(n)"
    },
    {
      "choiceText": "O(n^2)"
    },
    {
      "choiceText": "O(1)"
    }
  ],
  "problemAnswers": [
    {
      "blankPosition": null,
      "correctChoice": {
        "choiceText": "O(log n)"
      },
      "correctAnswerText": null
    }
  ]
},
  {
    "title": "버블 정렬 알고리즘",
    "problemType": "MULTIPLE_CHOICE",
    "category": "정렬",
    "difficulty": 5,
    "problemContent": {
      "content": "버블 정렬 알고리즘의 동작 원리는 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "인접한 두 요소를 비교하여 크기가 작은 요소가 앞에 오도록 교환을 반복한다."
      },
      {
        "choiceText": "리스트를 절반으로 나누어 각각을 정렬한 후 합병한다."
      },
      {
        "choiceText": "피벗을 설정하고 피벗보다 작은 요소와 큰 요소를 분할한다."
      },
      {
        "choiceText": "리스트를 정렬한 후, 정렬된 리스트의 중간 요소를 찾는다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "인접한 두 요소를 비교하여 크기가 작은 요소가 앞에 오도록 교환을 반복한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "탐색 알고리즘의 시간 복잡도",
    "problemType": "MULTIPLE_CHOICE",
    "category": "탐색",
    "difficulty": 5,
    "problemContent": {
      "content": "선형 탐색(Linear Search) 알고리즘의 시간 복잡도는 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "O(n)"
      },
      {
        "choiceText": "O(log n)"
      },
      {
        "choiceText": "O(n^2)"
      },
      {
        "choiceText": "O(1)"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "O(n)"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "상수와 변수의 차이점",
    "problemType": "MULTIPLE_CHOICE",
    "category": "변수",
    "difficulty": 1,
    "problemContent": {
      "content": "다음 중 상수와 변수의 차이점에 대한 설명으로 올바른 것은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "상수는 값을 변경할 수 없고, 변수는 값을 변경할 수 있다."
      },
      {
        "choiceText": "상수는 값을 변경할 수 있고, 변수는 값을 변경할 수 없다."
      },
      {
        "choiceText": "상수와 변수는 모두 값을 변경할 수 없다."
      },
      {
        "choiceText": "상수와 변수는 모두 값을 변경할 수 있다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "상수는 값을 변경할 수 없고, 변수는 값을 변경할 수 있다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
  "title": "자료형 변환",
  "problemType": "MULTIPLE_CHOICE",
  "category": "자료형",
  "difficulty": 2,
  "problemContent": {
    "content": "다음 중 문자열 '123'을 정수형으로 변환하는 올바른 방법은 무엇입니까?",
    "numberOfBlanks": 0
  },
  "problemChoices": [
    {
      "choiceText": "int('123')"
    },
    {
      "choiceText": "str(123)"
    },
    {
      "choiceText": "float('123')"
    },
    {
      "choiceText": "int('123', base=10)"
    }
  ],
  "problemAnswers": [
    {
      "blankPosition": null,
      "correctChoice": {
        "choiceText": "int('123')"
      },
      "correctAnswerText": null
    }
  ]
},
  {
    "title": "비트 연산자 활용",
    "problemType": "MULTIPLE_CHOICE",
    "category": "연산자",
    "difficulty": 3,
    "problemContent": {
      "content": "정수 5와 3에 대해 비트 AND 연산(&)을 수행하면 결과는 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "1"
      },
      {
        "choiceText": "2"
      },
      {
        "choiceText": "3"
      },
      {
        "choiceText": "0"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "1"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "반복문을 이용한 합 구하기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "반복문",
    "difficulty": 2,
    "problemContent": {
      "content": "1부터 10까지의 정수를 더하는 프로그램을 작성하려고 합니다. 다음 중 올바른 코드 구조는 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "for i in range(1, 11): sum += i"
      },
      {
        "choiceText": "for i in range(1, 10): sum += i"
      },
      {
        "choiceText": "for i in range(1, 11): sum = i"
      },
      {
        "choiceText": "for i in range(1, 10): sum = i"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "for i in range(1, 11): sum += i"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "파일에서 한 줄 읽기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "파일입출력",
    "difficulty": 3,
    "problemContent": {
      "content": "파일에서 첫 번째 줄을 읽어오는 올바른 방법은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "file.readline()"
      },
      {
        "choiceText": "file.read()"
      },
      {
        "choiceText": "file.read(1)"
      },
      {
        "choiceText": "file.readline(1)"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "file.readline()"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "조건문을 이용한 짝수 판별",
    "problemType": "MULTIPLE_CHOICE",
    "category": "조건문",
    "difficulty": 1,
    "problemContent": {
      "content": "정수가 짝수인지 확인하려고 합니다. 올바른 조건문은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "if x % 2 == 0:"
      },
      {
        "choiceText": "if x / 2 == 0:"
      },
      {
        "choiceText": "if x % 2 != 0:"
      },
      {
        "choiceText": "if x == 2:"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "if x % 2 == 0:"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "1차원 리스트 합 구하기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "1차원 리스트의 모든 요소를 더한 값을 반환하는 올바른 방법은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "sum(list)"
      },
      {
        "choiceText": "list.sum()"
      },
      {
        "choiceText": "for i in list: sum += i"
      },
      {
        "choiceText": "for i in list: sum = i"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "sum(list)"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "2차원 리스트 요소 접근",
    "problemType": "MULTIPLE_CHOICE",
    "category": "2차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "2차원 리스트에서 첫 번째 행의 두 번째 요소에 접근하는 올바른 방법은 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "list[0][1]"
      },
      {
        "choiceText": "list[1][2]"
      },
      {
        "choiceText": "list[1][1]"
      },
      {
        "choiceText": "list[0, 1]"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "list[0][1]"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
  "title": "조건문을 이용한 숫자 비교",
  "problemType": "MULTIPLE_CHOICE",
  "category": "조건문",
  "difficulty": 1,
  "problemContent": {
    "content": "다음 중 두 숫자 a와 b를 비교하여 a가 b보다 큰지 확인하는 올바른 조건문은 무엇입니까?",
    "numberOfBlanks": 0
  },
  "problemChoices": [
    {
      "choiceText": "if a > b:"
    },
    {
      "choiceText": "if a >= b:"
    },
    {
      "choiceText": "if a < b:"
    },
    {
      "choiceText": "if a == b:"
    }
  ],
  "problemAnswers": [
    {
      "blankPosition": null,
      "correctChoice": {
        "choiceText": "if a > b:"
      },
      "correctAnswerText": null
    }
  ]
}
,
  {
    "title": "이진 탐색 알고리즘",
    "problemType": "MULTIPLE_CHOICE",
    "category": "탐색",
    "difficulty": 5,
    "problemContent": {
      "content": "정렬된 배열에서 특정 값을 찾는 이진 탐색 알고리즘의 동작 원리는 무엇입니까?",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "배열의 중앙 요소와 비교하여 찾고자 하는 값이 중앙값보다 크면 오른쪽 절반을, 작으면 왼쪽 절반을 탐색한다."
      },
      {
        "choiceText": "배열의 첫 번째 요소와 비교하여 값이 크면 오른쪽으로 이동하고, 작으면 왼쪽으로 이동한다."
      },
      {
        "choiceText": "배열을 순차적으로 탐색하며 값을 찾는다."
      },
      {
        "choiceText": "배열을 역순으로 정렬한 후 탐색을 시작한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "배열의 중앙 요소와 비교하여 찾고자 하는 값이 중앙값보다 크면 오른쪽 절반을, 작으면 왼쪽 절반을 탐색한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "문자열 출력하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "표준입출력",
    "difficulty": 1,
    "problemContent": {
      "content": "다음 파이썬 코드는 변수를 사용하여 문자열을 출력합니다.\n\nmessage = 'Hello, World!'\n$blank1$(message)\n\n보기 중 알맞은 방법을 선택하세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "print"
      },
      {
        "choiceText": "printf"
      },
      {
        "choiceText": "console.log"
      },
      {
        "choiceText": "printf"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "print"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "암묵적 형변환",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 파이썬 코드의 실행 결과 2가 출력될 때, 빈칸에 들어갈 알맞은 보기를 선택하세요.\n\nprint(True + 1)",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "True"
      },
      {
        "choiceText": "'1'"
      },
      {
        "choiceText": "False"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "True"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "연산자 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "연산자",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드는 x를 y번 곱한 값을 출력합니다.\n\nx = 7\ny = 3\nresult = x $blank1$ y\nprint(result)\n\n빈칸에 들어갈 올바른 연산자를 선택하세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "**"
      },
      {
        "choiceText": "%"
      },
      {
        "choiceText": "//"
      },
      {
        "choiceText": "/"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "**"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "홀수 짝수 판별문",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "조건문",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드는 사용자가 입력한 숫자가 짝수인지 홀수인지 확인하는 조건문입니다.\n\nnumber = int(input('Enter a number: '))\nif $blank1$ % 2 == 0:\n    print('짝수')\nelse:\n    print('홀수')\n\n빈칸에 알맞은 코드를 채우세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "number"
      },
      {
        "choiceText": "input"
      },
      {
        "choiceText": "num"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "number"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "반복문을 활용한 리스트의 합 구하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "반복문",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 파이썬 코드는 반복문을 통해 리스트 요소의 전체 합을 구합니다.\n\nsum = 0\nnumbers = [1, 2, 3, 4, 5]\nfor number in $blank1$:\n    sum += number\nprint(sum)\n\n빈칸에 알맞은 내용을 채우세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "numbers"
      },
      {
        "choiceText": "number"
      },
      {
        "choiceText": "sum"
      },
      {
        "choiceText": "sum(numbers)"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "numbers"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "변수와 자료형 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "변수",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 코드는 두 변수의 값을 바꾸는 코드입니다. 빈칸에 알맞은 내용을 채워서 코드를 완성하세요.\n\nx = 5\ny = 10\nx, y = $blank1$, $blank2$\nprint('x:', x)\nprint('y:', y)\n\n빈칸에 들어갈 알맞은 내용을 채우세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "y"
      },
      {
        "choiceText": "x"
      },
      {
        "choiceText": "10"
      },
      {
        "choiceText": "5"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "y"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "x"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트의 최대값",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "1차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 파이썬 코드는 리스트에서 최댓값을 찾는 코드를 보여줍니다.\n\nnumbers = [3, 6, 2, 8, 4]\nmax_value = $blank1$\nfor num in numbers:\n    if num > max_value:\n        max_value = $blank2$\nprint($blank3$)\n\n빈칸에 알맞은 내용을 채우세요.",
      "numberOfBlanks": 3
    },
    "problemChoices": [
      {
        "choiceText": "numbers[0]"
      },
      {
        "choiceText": "num"
      },
      {
        "choiceText": "max_value"
      },
      {
        "choiceText": "max"
      },
      {
        "choiceText": "number"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "numbers[0]"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "num"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 3,
        "correctChoice": {
          "choiceText": "max_value"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "2차원 리스트 합 구하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "2차원 리스트",
    "difficulty": 4,
    "problemContent": {
      "content": "다음 코드는 2차원 리스트에서 모든 요소를 순회하며 합을 구하는 반복문입니다.\n\nsum = 0\nmatrix = [[1, 2], [3, 4], [5, 6]]\nfor row in $blank1$:\n    for element in $blank2$:\n        sum += $blank3$\n\n빈칸에 알맞은 내용을 채우세요.",
      "numberOfBlanks": 3
    },
    "problemChoices": [
      {
        "choiceText": "matrix"
      },
      {
        "choiceText": "row"
      },
      {
        "choiceText": "element"
      },
      {
        "choiceText": "column"
      },
      {
        "choiceText": "sum(row)"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "matrix"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "row"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 3,
        "correctChoice": {
          "choiceText": "element"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "연산자 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "연산자",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 코드는 a를 b로 나눈 몫을 구하는 연산을 수행합니다. 빈칸에 알맞은 연산자를 채워서 코드를 완성하세요.\n\na = 20\nb = 6\nresult = a $blank1$ b\nprint('The quotient is:', result)\n\n빈칸에 들어갈 알맞은 연산자를 채우세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "//"
      },
      {
        "choiceText": "%"
      },
      {
        "choiceText": "**"
      },
      {
        "choiceText": "/"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "//"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "파일입출력",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "파일입출력",
    "difficulty": 4,
    "problemContent": {
      "content": "다음 파이썬 코드는 파일에 문자열을 저장하는 코드입니다.\n\nwith open('output.txt', $blank1$) as file:\n    file.write('Hello!')\n\n빈칸에 알맞은 문자열을 채우세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "'w'"
      },
      {
        "choiceText": "'input.txt'"
      },
      {
        "choiceText": "'r'"
      },
      {
        "choiceText": "'i'"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "'w'"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트 요소 빈도 계산",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "1차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 파이썬 코드는 리스트에서 주어진 숫자의 빈도를 계산하여 반환하는 함수입니다. 빈칸을 채워서 코드를 완성하세요.\n\ndef count_frequency(numbers, target):\n    count = 0\n    for number in $blank1$:\n        if number == $blank2$:\n            count += 1\n    return count\n\nnumbers = [1, 2, 2, 3, 4, 2, 5]\ntarget = 2\nprint(count_frequency(numbers, target))\n\n빈칸에 들어갈 알맞은 내용을 채우세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "numbers"
      },
      {
        "choiceText": "target"
      },
      {
        "choiceText": "number"
      },
      {
        "choiceText": "count"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "numbers"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "target"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "짝수만 추출하여 새로운 리스트 만들기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "1차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 파이썬 코드는 리스트에서 짝수만 추출하여 새로운 리스트를 만드는 코드입니다. 빈칸을 채워서 코드를 완성하세요.\n\nnumbers = [1, 2, 3, 4, 5, 6]\n\ndef filter_even(numbers):\n    evens = []\n    for number in $blank1$:\n        if number % 2 $blank2$ 0:\n            evens.append(number)\n    return evens\n\nprint(filter_even(numbers))\n\n빈칸에 들어갈 알맞은 내용을 채우세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "numbers"
      },
      {
        "choiceText": "=="
      },
      {
        "choiceText": "!="
      },
      {
        "choiceText": "="
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "numbers"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "=="
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "명시적 형변환",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드는 문자열을 정수로 변환하는 코드입니다. 빈칸에 알맞은 내용을 채워서 코드를 완성하세요.\n\nnum_str = '123'\nnum_int = $blank1$(num_str)\nprint('Integer value:', num_int)\n\n빈칸에 들어갈 알맞은 함수를 채워세요.",
      "numberOfBlanks": 1
    },
    "problemChoices": [
      {
        "choiceText": "int"
      },
      {
        "choiceText": "float"
      },
      {
        "choiceText": "floor"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "int"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "2차원 리스트 합 구하기",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "2차원 리스트",
    "difficulty": 4,
    "problemContent": {
      "content": "다음 파이썬 코드는 2차원 리스트의 합계를 계산하는 코드입니다.\n\nmatrix = [[1, 2], [3, 4], [5, 6]]\nsum = 0\nfor row in range($blank1$):\n    for j in range($blank2$):\n        sum += matrix[row][j]\nprint(sum)\n\n빈칸에 알맞은 내용을 채우세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "3"
      },
      {
        "choiceText": "2"
      },
      {
        "choiceText": "6"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "3"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "2"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "파일 입출력 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "파일입출력",
    "difficulty": 4,
    "problemContent": {
      "content": "다음 코드는 파일에 데이터를 쓰는 코드입니다. 빈칸에 알맞은 내용을 채워서 코드를 완성하세요.\n\nwith open('data.txt', 'w') as file:\n    $blank1$.$blank2$('Hello!')\n\n빈칸에 들어갈 알맞은 문자열을 채워서 파일에 데이터를 씁니다.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "file"
      },
      {
        "choiceText": "write"
      },
      {
        "choiceText": "data"
      },
      {
        "choiceText": "insert"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "file"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "write"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "함수와 람다 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "함수의 활용",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 코드는 두 숫자의 곱을 계산하는 람다 함수를 정의하는 코드입니다. 빈칸에 알맞은 내용을 채워서 코드를 완성하세요.\n\nmultiply = lambda a, b: $blank1$ * $blank2$\nresult = multiply(6, 7)\nprint('Result:', result)\n\n빈칸에 들어갈 알맞은 내용을 채우세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "a"
      },
      {
        "choiceText": "b"
      },
      {
        "choiceText": "6"
      },
      {
        "choiceText": "7"
      },
      {
        "choiceText": "num1"
      },
      {
        "choiceText": "num2"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "a"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "b"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "세트 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "자료형",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 코드는 두 세트의 합집합을 구하는 코드입니다. 빈칸에 알맞은 메서드를 채워서 코드를 완성하세요.\n\nset1 = {1, 2, 3}\nset2 = {3, 4, 5}\nunion_set = $blank1$.$blank2$(set2)\nprint('Union of sets:', union_set)\n\n빈칸에 들어갈 알맞은 메서드를 채워서 세트의 합집합을 구하세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "set1"
      },
      {
        "choiceText": "union"
      },
      {
        "choiceText": "insert"
      },
      {
        "choiceText": "add"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "set1"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "union"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "in 연산자 문제",
    "problemType": "FILL_IN_THE_BLANK",
    "category": "탐색",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드는 리스트에 특정 요소가 포함되어 있는지 확인하는 코드입니다. 빈칸에 알맞은 내용을 채워서 코드를 완성하세요.\n\nfruits = ['apple', 'banana', 'cherry']\nsearch_fruit = 'banana'\n$blank1$ search_fruit $blank2$ fruits:\n    print('Fruit is in the list')\nelse:\n    print('Fruit is not in the list')\n\n빈칸에 들어갈 알맞은 연산자를 채우세요.",
      "numberOfBlanks": 2
    },
    "problemChoices": [
      {
        "choiceText": "if"
      },
      {
        "choiceText": "in"
      },
      {
        "choiceText": "is"
      },
      {
        "choiceText": "include"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": 1,
        "correctChoice": {
          "choiceText": "if"
        },
        "correctAnswerText": null
      },
      {
        "blankPosition": 2,
        "correctChoice": {
          "choiceText": "in"
        },
        "correctAnswerText": null
      }
    ]
  },
{
    "title": "배열의 최대값 찾기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "배열이 주어질 때, 배열의 요소 중 가장 큰 값을 찾아서 반환하는 프로그램을 작성하세요. 배열은 정수로만 구성되어 있으며, 배열의 크기는 1 이상 100 이하입니다.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "배열의 첫 번째 요소를 최대값으로 설정하고, 배열을 순회하며 최대값을 갱신한다."
      },
      {
        "choiceText": "배열을 오름차순 정렬한 후 첫번째 요소를 반환한다."
      },
      {
        "choiceText": "배열을 내림차순 정렬한 후 마지막 요소를 반환한다."
      },
      {
        "choiceText": "배열의 요소를 모두 더한 값을 반환한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "배열의 첫 번째 요소를 최대값으로 설정하고, 배열을 순회하며 최대값을 갱신한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "문자열에서 특정 문자 개수 세기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "주어진 문자열에서 특정 문자가 몇 번 나타나는지 세는 프로그램을 작성하세요.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "문자열을 순회하며 각 문자를 비교하여 특정 문자의 개수를 세기."
      },
      {
        "choiceText": "문자열을 정렬한 후 특정 문자가 몇 개 있는지 세기."
      },
      {
        "choiceText": "문자열에서 특정 문자만 추출하여 그 길이를 반환하기."
      },
      {
        "choiceText": "문자열을 대문자로 변환한 후 특정 문자의 개수를 세기."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "문자열을 순회하며 각 문자를 비교하여 특정 문자의 개수를 세기."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "소수 판별",
    "problemType": "MULTIPLE_CHOICE",
    "category": "알고리즘",
    "difficulty": 3,
    "problemContent": {
      "content": "주어진 정수가 소수인지 판별하는 프로그램을 작성하세요. 소수는 1과 자기 자신만으로 나누어 떨어지는 수입니다.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "주어진 수가 2부터 n의 제곱근까지 나누어 떨어지는지 확인한다. (n>=2 자연수)"
      },
      {
        "choiceText": "주어진 수가 1과 자기 자신 외의 수로 나누어 떨어지는지 확인한다."
      },
      {
        "choiceText": "주어진 수가 2보다 큰 모든 수로 나누어 떨어지는지 확인한다."
      },
      {
        "choiceText": "주어진 수가 홀수인지 확인한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "주어진 수가 2부터 n의 제곱근까지 나누어 떨어지는지 확인한다. (n>=2 자연수)"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "정렬된 배열에서 이진 탐색",
    "problemType": "MULTIPLE_CHOICE",
    "category": "탐색",
    "difficulty": 4,
    "problemContent": {
      "content": "정렬된 배열과 검색할 값이 주어질 때, 이진 탐색 알고리즘을 사용하여 값을 찾는 프로그램을 작성하세요. 배열은 오름차순으로 정렬되어 있습니다.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "중간값과 검색할 값을 비교하여 배열의 절반을 반복적으로 탐색한다."
      },
      {
        "choiceText": "배열의 모든 요소를 순차적으로 비교하여 검색할 값을 찾는다."
      },
      {
        "choiceText": "배열을 정렬한 후 이진 탐색을 수행한다."
      },
      {
        "choiceText": "배열을 역순으로 정렬한 후 이진 탐색을 수행한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "중간값과 검색할 값을 비교하여 배열의 절반을 반복적으로 탐색한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "이진 탐색",
    "problemType": "MULTIPLE_CHOICE",
    "category": "탐색",
    "difficulty": 3,
    "problemContent": {
      "content": "정렬된 배열과 검색할 값이 주어질 때, 이진 탐색 알고리즘을 사용하여 값을 찾는 프로그램을 작성하세요. 배열은 오름차순으로 정렬되어 있습니다.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "중간값과 검색할 값을 비교하여 배열의 절반을 반복적으로 탐색한다."
      },
      {
        "choiceText": "배열을 정렬한 후 인접한 중복 요소를 제거한다."
      },
      {
        "choiceText": "배열의 모든 요소를 순차적으로 비교하여 검색할 값을 찾는다."
      },
      {
        "choiceText": "배열의 모든 요소를 2배로 만들어 중복을 피한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "배열을 정렬한 후 인접한 중복 요소를 제거한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "정수의 합 구하기",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "정수 배열이 주어질 때, 배열의 모든 요소의 합을 계산하는 프로그램을 작성하세요.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "배열을 순회하며 각 요소를 누적하여 합을 계산한다."
      },
      {
        "choiceText": "배열을 정렬한 후 첫 번째 요소와 마지막 요소의 합을 계산한다."
      },
      {
        "choiceText": "배열의 요소를 제곱하여 합을 계산한다."
      },
      {
        "choiceText": "배열의 평균값을 구한 후 평균값에 배열의 길이를 곱한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "배열을 순회하며 각 요소를 누적하여 합을 계산한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "중복 문자 제거",
    "problemType": "MULTIPLE_CHOICE",
    "category": "자료형",
    "difficulty": 3,
    "problemContent": {
      "content": "주어진 문자열에서 모든 중복 문자를 제거한 새로운 문자열을 반환하는 프로그램을 작성하세요.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "문자열을 순회하며 각 문자를 집합에 추가한 후 집합을 문자열로 변환한다."
      },
      {
        "choiceText": "문자열을 정렬한 후 앞에서 부터 순회하며 인접한 문자가 같으면 제거한다."
      },
      {
        "choiceText": "문자열의 각 문자를 개수에 따라 정렬한다."
      },
      {
        "choiceText": "문자열의 각 문자를 ASCII 값으로 변환한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "문자열을 순회하며 각 문자를 집합에 추가한 후 집합을 문자열로 변환한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "두 정수의 최대공약수 (GCD)",
    "problemType": "MULTIPLE_CHOICE",
    "category": "알고리즘",
    "difficulty": 4,
    "problemContent": {
      "content": "두 정수가 주어질 때, 두 정수의 최대공약수(GCD)를 계산하는 프로그램을 작성하세요.",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "유클리드 알고리즘을 사용하여 최대공약수를 계산한다."
      },
      {
        "choiceText": "두 수의 배수 중 작은 값을 찾아 최대공약수를 계산한다."
      },
      {
        "choiceText": "두 수의 평균을 계산하여 최대공약수를 추정한다."
      },
      {
        "choiceText": "두 수의 차를 계산하여 최대공약수를 추정한다."
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "유클리드 알고리즘을 사용하여 최대공약수를 계산한다."
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "반복문을 활용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "반복문",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\nfor i in range(1, 6):\n    print(i * 2, end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "2 4 6 8 10"
      },
      {
        "choiceText": "1 3 5 7 9"
      },
      {
        "choiceText": "1 2 3 4 5"
      },
      {
        "choiceText": "2 3 4 5 6"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "2 4 6 8 10"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "반복문을 통한 곱셈 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "반복문",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\nresult = 1\nfor i in range(1, 6):\n    result *= i\nprint(result)\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "120"
      },
      {
        "choiceText": "60"
      },
      {
        "choiceText": "24"
      },
      {
        "choiceText": "10"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "120"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트의 인덱스와 반복문을 이용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\nnumbers = [1, 2, 3, 4, 5]\nfor index, value in enumerate(numbers):\n    print(index, value, end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "0 1 1 2 2 3 3 4 4 5"
      },
      {
        "choiceText": "1 1 2 2 3 3 4 4 5 5"
      },
      {
        "choiceText": "0 1 2 3 4 1 2 3 4 5"
      },
      {
        "choiceText": "0 1 2 3 4 1 2 3 4 5"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "0 1 1 2 2 3 3 4 4 5"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "조건문과 반복문을 이용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "조건문",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\nfor i in range(10):\n    if i % 2 == 0:\n        print(i, end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "0 2 4 6 8"
      },
      {
        "choiceText": "1 3 5 7 9"
      },
      {
        "choiceText": "1 2 3 4 5"
      },
      {
        "choiceText": "2 4 6 8 10"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "0 2 4 6 8"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "문자열 처리와 반복문을 이용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\ntext = 'hello'\nfor char in text:\n    print(char.upper(), end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "HELLO"
      },
      {
        "choiceText": "H E L L O"
      },
      {
        "choiceText": "hELLO"
      },
      {
        "choiceText": "H e L l O"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "H E L L O"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "중첩 반복문을 이용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "반복문",
    "difficulty": 3,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\nfor i in range(3):\n    for j in range(2):\n        print(i * j, end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "0 0 0 1 0 2"
      },
      {
        "choiceText": "0 1 2 3 4 5"
      },
      {
        "choiceText": "0 0 1 2 2 4"
      },
      {
        "choiceText": "0 0 0 1 2 3"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "0 0 0 1 0 2"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "딕셔너리와 반복문을 이용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\ndata = {'a': 1, 'b': 2, 'c': 3}\nfor key, value in data.items():\n    print(key, value, end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "a 1 b 2 c 3"
      },
      {
        "choiceText": "1 a 2 b 3 c"
      },
      {
        "choiceText": "a b c 1 2 3"
      },
      {
        "choiceText": "1 2 3 a b c"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "a 1 b 2 c 3"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "함수와 반복문을 이용한 출력 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "함수의 활용",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드의 출력 결과를 예측하세요.\n\npython\ndef square(x):\n    return x * x\n\nfor i in range(3):\n    print(square(i), end=' ')\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "0 1 4"
      },
      {
        "choiceText": "1 4 9"
      },
      {
        "choiceText": "1 2 3"
      },
      {
        "choiceText": "0 1 2"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "0 1 4"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "딕셔너리에서 특정 키의 값을 찾는 코드의 출력 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "자료형",
    "difficulty": 1,
    "problemContent": {
      "content": "다음 코드를 실행한 후 my_dict['b']의 값을 예측하세요.\n\npython\nmy_dict = {'a': 1, 'b': 2, 'c': 3}\nprint(my_dict['b'])\n\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "2"
      },
      {
        "choiceText": "1"
      },
      {
        "choiceText": "3"
      },
      {
        "choiceText": "KeyError"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "2"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트의 요소를 역순으로 출력하는 코드의 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드를 실행한 후 출력 결과를 예측하세요.\n\npython\nnumbers = [5, 10, 15, 20]\n\nfor num in reversed(numbers):\n    print(num, end=' ')\n\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "20 15 10 5"
      },
      {
        "choiceText": "5 10 15 20"
      },
      {
        "choiceText": "20 15 10"
      },
      {
        "choiceText": "5 10 15"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "20 15 10 5"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "튜플의 합계와 평균을 계산하는 함수의 출력 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "자료형",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드를 실행한 후 함수의 반환값을 예측하세요.\n\npython\nnumbers = (4, 8, 12)\n\ntotal = sum(numbers)\naverage = total / len(numbers)\nprint(total, average)\n\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "24 8.0"
      },
      {
        "choiceText": "12 4.0"
      },
      {
        "choiceText": "24 6.0"
      },
      {
        "choiceText": "20 6.0"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "24 8.0"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트의 요소를 역순으로 출력하는 코드의 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드를 실행한 후 출력 결과를 예측하세요.\n\npython\nnumbers = [5, 10, 15, 20]\n\nfor num in numbers[::-1]:\n    print(num, end=' ')\n\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "20 15 10 5"
      },
      {
        "choiceText": "5 10 15 20"
      },
      {
        "choiceText": "20 15 10"
      },
      {
        "choiceText": "5 10 15"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "20 15 10 5"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "조건문에 따라 다른 문자열을 출력하는 코드의 결과 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "조건문",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드를 실행한 후 출력 결과를 예측하세요.\n\npython\nn = 10\n\nif n > 10:\n    result = 'Greater than 10'\nelif n == 10:\n    result = 'Equal to 10'\nelse:\n    result = 'Less than 10'\n\nprint(result)\n\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "Equal to 10"
      },
      {
        "choiceText": "Greater than 10"
      },
      {
        "choiceText": "Less than 10"
      },
      {
        "choiceText": "No Output"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "Equal to 10"
        },
        "correctAnswerText": null
      }
    ]
  },
  {
    "title": "리스트에서 최대값과 최소값을 찾는 코드의 출력 예측",
    "problemType": "MULTIPLE_CHOICE",
    "category": "1차원 리스트",
    "difficulty": 2,
    "problemContent": {
      "content": "다음 코드를 실행한 후 출력 결과를 예측하세요.\n\npython\nnumbers = [3, 7, 2, 9, 4]\n\nmax_value = max(numbers)\nmin_value = min(numbers)\nprint('Max:', max_value, 'Min:', min_value)\n\n",
      "numberOfBlanks": 0
    },
    "problemChoices": [
      {
        "choiceText": "Max: 9 Min: 2"
      },
      {
        "choiceText": "Max: 7 Min: 2"
      },
      {
        "choiceText": "Max: 9 Min: 3"
      },
      {
        "choiceText": "Max: 7 Min: 3"
      }
    ],
    "problemAnswers": [
      {
        "blankPosition": null,
        "correctChoice": {
          "choiceText": "Max: 9 Min: 2"
        },
        "correctAnswerText": null
      }
    ]
  }
]