코딩일기/자격증

[정보처리기사] [Python] 문자열에서 특정 패턴 찾는 방법 | 슬라이싱 & f-string 활용 | 2024년 2회 정보처리기사 실기 기출문제

jhy_2023 2025. 4. 10. 17:26
728x90
반응형

2024년 2회 정보처리기사 실기 기출문제

문제

다음 파이썬 코드의 실행 결과를 쓰시오.

def fnCalculation(x, y):
    result = 0;
    for i in range(len(x)):
        temp = x[i:i+len(y)] 
        if temp == y:
            result += 1;
    return result

a = "abdcabcabca"
p1 = "ab";
p2 = "ca";

out = f"ab{fnCalculation(a,p1)}ca{fnCalculation(a,p2)}"
print(out)

정답

ab3ca3
반응형

해설

▼ 비슷한 기출 문제도 같이 풀어보세요

 

[정보처리기사] [Python] 문자열 슬라이싱과 f-string 활용 | 2024년 2회 정보처리기사 실기 기출문제

2024년 2회 정보처리기사 실기 기출문제문제다음 파이썬 코드의 실행 결과를 쓰시오.def cnt(str, p): result = 0 for i in range(len(str) - len(p) + 1): sub = str[i:i+len(p)] if sub == p: result += 1 return resultstr = "abdcabcabca

august-jhy.tistory.com


이 코드는 문자열 x에서 부분 문자열 y가 몇 번 등장하는지를 세는 함수 fnCalculation(x, y)를 정의하고, 이를 바탕으로 포맷 문자열을 생성하여 출력하는 구조입니다.

1️⃣ 함수 분석

def fnCalculation(x, y):
    result = 0;
    for i in range(len(x)):
        temp = x[i:i+len(y)] 
        if temp == y:
            result += 1;
    return result
  • for i in range(len(x)):
    • 문자열 x의 길이만큼 반복문을 수행합니다. 예를 들어 x의 길이가 11이면, i는 0부터 10까지 총 11번 반복됩니다.
  • temp = x[i:i+len(y)]
    • 이는 문자열 슬라이싱(Slicing) 문법입니다.  x[i:i+len(y)]는 문자열 x에서 인덱스 i부터 i+len(y) 이전까지의 문자열을 잘라냅니다.
    • 예를 들어 x = "abcde", y = "ab"일 경우, len(y)는 2이므로 x[0:2]는 "ab"가 됩니다.
    • 잘라낸 문자열은 temp라는 변수에 저장됩니다.
  • if temp == y:
    • 위에서 잘라낸 부분 문자열 temp가 찾고자 하는 문자열 y와 정확히 일치할 경우 조건이 참(True)이 됩니다.
    • 조건이 참일 경우, 다음 줄의 코드를 실행하여 result를 1 증가시킵니다.( 문자열 y가 등장한 횟수를 1회 증가 )

2️⃣ 문자열 포맷팅(f-string)

out = f"ab{fnCalculation(a, p1)}ca{fnCalculation(a, p2)}"
  • out = f"ab{fnCalculation(a,p1)}ca{fnCalculation(a,p2)}"
    • f"문자열{변수}문자열"은 파이썬의 f-string 포맷 방식으로, 중괄호 {} 안에 함수나 변수를 넣어 해당 값이 문자열로 삽입되도록 합니다.
    • fnCalculation(a, p1)은 문자열 "ab"가 문자열 a에 몇 번 등장하는지 계산합니다.
    • fnCalculation(a, p2)는 문자열 "ca"가 문자열 a에 몇 번 등장하는지 계산합니다.
    • 최종적으로 out에는 "ab3ca3"이 저장됩니다. (아래 함수 실행 과정 참고)

728x90

🔎 함수 실행 과정

  • 위 표에서 "ab"와 일치한 경우는 3번 등장합니다.  따라서 fnCalculation(a, "ab")의 결과는 3입니다.
    • x[0:2] = "ab" ✅
    • x[4:6] = "ab" ✅
    • x[7:9] = "ab" ✅

  • 위 표에서 "ca"와 일치한 경우는 3번 등장합니다.  따라서 fnCalculation(a, "ca")의 결과는 3입니다.
    • x[3:5] = "ca" ✅
    • x[6:8] = "ca" ✅
    • x[9:11] = "ca" ✅

4️⃣ 최종 출력 결과

print(out)

 

  • 포맷 문자열 "ab{3}ca{3}"이 생성되어 출력됩니다.
  • ab3ca3

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형