
정답아스키 코드의 한계를 극복하기 위해 16비트 이상을 사용해 전 세계 대부분의 문자를 통합 표현하는 문자 체계입니다.
핵심 개념
유니코드(Unicode)의 목적과 구조
유니코드는 7비트 아스키(ASCII)가 영문 128자밖에 표현하지 못해 한글·한자·아랍문자 같은 다국어를 담을 수 없다는 한계를 극복하기 위해 만들어진 국제 표준 문자 집합입니다. 기본 다국어 평면(BMP)에서 16비트(2바이트)를 사용하고 확장 영역까지 포함하면 그 이상을 사용해 전 세계 거의 모든 문자에 고유한 코드값을 부여합니다. 핵심은 '국가·지역별로 따로 놀던 코드페이지를 하나로 통합했다'는 점이며, 저장 공간 절약이 아니라 상호 호환성과 통합 표현이 목적입니다. 실제 저장 형식으로는 UTF-8, UTF-16, UTF-32 등의 인코딩이 쓰인다는 점도 함께 기억해 두면 좋습니다.
선지별 해설
①8비트 구조로 설계된 것은 확장 아스키나 EUC 계열이며, 유니코드는 16비트 이상을 사용합니다. 또한 유니코드의 목적은 저장 공간 절약이 아니라 다국어 통합 표현이므로 저장 효율이 가장 크다는 서술도 맞지 않습니다.
②국가별로 독립적인 코드체계와 코드페이지를 따로 관리하던 것이 바로 유니코드 이전의 방식입니다. 유니코드는 그 분열을 없애고 하나의 코드 공간으로 통합하는 것이 목표이므로 정반대의 설명입니다.
③미국 중심의 영문 전용 방식은 아스키 코드에 해당합니다. 유니코드는 오히려 멀티바이트 언어 표현을 위해 만들어진 체계이므로 적합하지 않다는 서술은 틀렸습니다.
④아스키의 표현 범위 한계를 극복하기 위해 16비트 이상의 코드 공간을 사용하여 전 세계 문자를 하나의 체계로 통합한다는 유니코드의 정의를 정확히 담고 있습니다.

정답b가 22가 되는 네 번째 회차에서 break가 걸려 c는 40이 되므로 Result: 40이 출력됩니다.
핵심 개념
range()와 break가 있는 파이썬 반복문 추적
range(1, 20, 3)은 1에서 시작해 3씩 증가하며 20 미만까지, 즉 1, 4, 7, 10, 13, 16, 19를 생성합니다. 반복문 안에서 b는 a의 누적합, c는 b의 누적합이 되고, b가 15를 초과하는 순간 break로 반복이 즉시 끝납니다. 이때 break는 b와 c를 갱신한 뒤에 실행되므로, 조건을 만족시킨 그 회차의 누적값까지는 이미 c에 반영된다는 점이 함정입니다. 반복 변수를 표로 추적하면서 break 시점을 정확히 잡는 것이 이 문제의 핵심입니다.
선지별 해설
①a=1일 때 b=1, c=1, a=4일 때 b=5, c=6, a=7일 때 b=12, c=18, a=10일 때 b=22, c=40이 되고 b>15가 성립해 break됩니다. 따라서 출력은 Result: 40입니다.
②51은 어느 회차의 c 값과도 일치하지 않습니다. c는 1, 6, 18, 40 순으로 변하므로 51이 나올 수 없습니다.
③70은 break를 무시하고 a=13까지 한 번 더 진행했을 때 나오는 값(c=40+35=75에 못 미치는 잘못된 중간값)으로, b>15에서 이미 반복이 끝나므로 도달하지 않습니다.
④75는 break를 적용하지 않고 a=13 회차까지 계산했을 때의 값입니다. b가 22로 15를 초과한 시점에서 반복이 종료되므로 여기까지 진행되지 않습니다.