[정처기 실기 기출] 2024 3회 : 파이썬 코드 분석 문제
본문 바로가기

Computer Science/정보처리기사

[정처기 실기 기출] 2024 3회 : 파이썬 코드 분석 문제

728x90
반응형

 

🧠 파이썬 문제풀이

 

💬 문제 코드

def func(lst):
    for i in range(len(lst) // 2):
        lst[i], lst[-i - 1] = lst[-i - 1], lst[i]

lst = [1, 2, 3, 4, 5, 6]
func(lst)
print(sum(lst[::2]) - sum(lst[1::2]))

✅ 문제 해석

  1. func(lst)는 리스트를 뒤집는 함수입니다.
  2. 그 다음 lst[::2]와 lst[1::2]를 통해 짝수/홀수 인덱스의 합을 각각 구합니다.
  3. 마지막으로 그 두 값의 차를 출력합니다.

🔍 Step 1: 리스트 뒤집기

for i in range(len(lst) // 2):
    lst[i], lst[-i - 1] = lst[-i - 1], lst[i]

이 코드는 리스트를 앞과 뒤에서부터 교환하면서 뒤집는 동작을 합니다.

i lst[i] lst[-i - 1] 바뀐 후

0 1 6 6, …, 1
1 2 5 6, 5, …, 2, 1
2 3 4 6, 5, 4, 3, 2, 1

최종 결과: lst = [6, 5, 4, 3, 2, 1]


🔍 Step 2: 슬라이싱을 이용한 합 계산

✅ 짝수 인덱스 (lst[::2])

lst[::2] = [6, 4, 2]
sum(lst[::2]) = 6 + 4 + 2 = 12

✅ 홀수 인덱스 (lst[1::2])

lst[1::2] = [5, 3, 1]
sum(lst[1::2]) = 5 + 3 + 1 = 9

✅ 최종 계산

print(12 - 9)  # 출력 결과: 3

✨ 핵심 문법 정리

🔁 lst[i], lst[-i - 1] = lst[-i - 1], lst[i]

  • 리스트의 앞(i)뒤(-i - 1) 요소를 서로 교환함
  • 파이썬만의 간결한 swap 문법!
    다른 언어에서는 임시 변수 필요함

🧩 lst[::2] / lst[1::2]

  • lst[::2]: 짝수 인덱스 (0, 2, 4, …)
  • lst[1::2]: 홀수 인덱스 (1, 3, 5, …)

🎯 정답: 3

 

 

 

 

728x90
반응형