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
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] [ C ] switch문 실행 흐름 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.11 |
---|---|
[정보처리기사] [ C ] 포인터 배열과 2차원 배열 연산 이해하기 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.11 |
2024년 1회 정보처리기사 실기 기출문제 및 해설 (0) | 2025.04.10 |
[정보처리기사] [Python] 문자열 슬라이싱과 f-string 활용 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.09 |
[정보처리기사] [Java] 배열과 == 비교 연산자 | 자바의 자료형 기본형과 참조형 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.08 |