문자열 조각을 이어 문장 완성하기(Chatgpt)

2026. 7. 11. 15:45파이썬

슬라이싱과 %s 문자열 포매팅 분석

1. 문제

다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.

a = "REMEMBER NOVEMBER"
b = a[0:3] + a[12:16]
c = "R AND %s" % "STR"
print(b + c)

2. 주요 포인트

이 문제에서는 다음 내용을 확인해야 합니다.

① 문자열 인덱스는 0부터 시작한다

문자열의 첫 번째 문자는 0번 인덱스입니다.

② 슬라이싱의 종료 위치는 포함하지 않는다

문자열[시작:종료]

시작 인덱스부터 종료 인덱스 직전까지 가져옵니다.

③ +는 문자열을 연결한다

문자열1 + 문자열2

두 문자열을 하나로 이어 붙입니다.

④ %s에는 문자열이 들어간다

"R AND %s" % "STR"

%s 자리에 문자열 "STR"이 들어갑니다.


3. 풀이

3-1. 문자열의 인덱스 확인

a = "REMEMBER NOVEMBER"

문자열의 각 문자와 인덱스를 확인하면 다음과 같습니다.

인덱스 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
문자   : R E M E M B E R   N  O  V  E  M  B  E  R

8번 인덱스에는 공백이 들어 있습니다.


3-2. 첫 번째 슬라이싱

a[0:3]

0번부터 3번 직전까지이므로 0, 1, 2번 문자를 가져옵니다.

0번 → R
1번 → E
2번 → M

결과는 다음과 같습니다.

REM

3-3. 두 번째 슬라이싱

a[12:16]

12번부터 16번 직전까지이므로 12, 13, 14, 15번 문자를 가져옵니다.

12번 → E
13번 → M
14번 → B
15번 → E

결과는 다음과 같습니다.

EMBE

3-4. 변수 b 계산

b = a[0:3] + a[12:16]

앞에서 구한 문자열을 연결합니다.

"REM" + "EMBE"

따라서 b의 값은 다음과 같습니다.

REMEMBE

아직 마지막 문자 R이 없는 상태입니다.


3-5. 변수 c 계산

c = "R AND %s" % "STR"

%s 자리에 "STR"이 들어갑니다.

R AND STR

따라서 c의 값은 다음과 같습니다.

R AND STR

c의 첫 글자인 R이 앞에서 부족했던 "REMEMBE"의 마지막 글자 역할을 합니다.


3-6. 최종 문자열 연결

print(b + c)

b와 c를 연결합니다.

b = "REMEMBE"
c = "R AND STR"

따라서 다음과 같이 연결됩니다.

"REMEMBE" + "R AND STR"
REMEMBER AND STR

4. 실행 흐름 한눈에 보기

a[0:3]   → REM
a[12:16] → EMBE

b = REM + EMBE
  = REMEMBE
"R AND %s" % "STR"
→ R AND STR
REMEMBE + R AND STR
→ REMEMBER AND STR

5. 정답

REMEMBER AND STR

6. 시험에서 주의할 부분

슬라이싱의 종료 인덱스는 포함하지 않는다

a[0:3]

0, 1, 2번 문자만 가져옵니다.

3번 문자는 포함하지 않습니다.

중간에 공백이 자동으로 생기는 것은 아니다

b + c

두 문자열은 그대로 연결됩니다.

이 문제에서는 c가 다음 문자열이기 때문에 결과에 공백이 포함됩니다.

R AND STR

%s는 문자열 치환 형식이다

"R AND %s" % "STR"

%s가 그대로 출력되는 것이 아니라 "STR"로 변경됩니다.


7. 시험 풀이 요약

a[0:3]은 "REM"이고, a[12:16]은 "EMBE"입니다.

두 문자열을 연결하면 b는 "REMEMBE"가 됩니다.

"R AND %s" % "STR"의 결과는 "R AND STR"입니다.

마지막으로 두 문자열을 연결하면 다음 결과가 출력됩니다.

REMEMBER AND STR