정보처리기사 실기PythonPython - 문자열 슬라이싱과 필터링난이도 2SHORT_ANSWER

정보처리기사 실기 Python - 문자열 슬라이싱과 필터링 기출문제 #11064

문제

다음 Python 코드에 HumanDev를 입력했을 때 출력 결과를 쓰시오.

정답

veDamuH

veDamuH

해설

정답: veDamuH.

입력 HumanDev가 어떻게 변형되는지 순서대로 따라가면 된다.

  1. i.split(): 공백이 없으므로 단어 하나짜리 리스트 ['HumanDev']
  2. 반복문에서 각 단어를 w[::-1]로 뒤집어 x에 append → 'HumanDev'를 역순으로 'veDamuH', 따라서 x = ['veDamuH']
  3. ' '.join(x): 원소가 하나뿐이라 구분자 공백은 끼지 않고 'veDamuH'
  4. 마지막 조건 필터: y의 각 문자 c 중 문자열 "ong"에 든 문자(o, n, g)를 제외하고 다시 이어 붙인다. 'veDamuH'에는 o, n, g가 하나도 없으므로 그대로 유지 → 'veDamuH'

따라서 출력은 veDamuH이다.

오답 풀이

  • 입력 그대로 HumanDev로 답하면 오답. w[::-1] 슬라이싱이 문자열을 뒤집는다.
  • 대소문자를 바꿔 답하면 오답. 역순 뒤집기는 순서만 바꿀 뿐 대소문자는 그대로다.
  • "ong"를 통째 부분문자열로 찾아 지우려 하면 오답. c not in "ong"는 한 글자 c가 집합 {o, n, g}에 속하는지를 보는 것이라 글자 단위로 걸러낸다.

보충 개념 만약 입력이 여러 단어였다면(예: Human Dev) split이 ['Human','Dev']로 나누고 각각 뒤집은 뒤 ' '.join이 단어 사이에 공백 한 칸을 넣어 'namuH veD'처럼 이어 붙인다. 이 문항은 단어가 하나라 공백이 나타나지 않는다.

정보처리기사 실기 Python 다른 기출문제

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.