2026. 7. 11. 10:31ㆍ파이썬
split(), range(), remove(), find() 실행 흐름 추적
1. 문제
다음 Python 프로그램과 입력값을 분석하여 실행 결과를 작성하시오.
arr_str = input('input String :').split('-')
arr_len = int(input('input number : '))
arr_val = list(range(0, arr_len, 2))
arr_val.remove(4)
print(arr_str[1].find('i') + arr_val[2])
입력값
input String : information-technology
input number : 12
2. 주요 포인트
이 문제는 문자열과 리스트가 코드 한 줄씩 실행되면서 어떻게 변하는지를 추적하는 문제입니다.
① split('-')
문자열.split('-')
문자열을 하이픈 -을 기준으로 나누어 리스트로 만듭니다.
"information-technology".split('-')
결과:
["information", "technology"]
② range(시작, 종료, 증가값)
range(0, arr_len, 2)
0부터 시작해 2씩 증가하며 숫자를 생성합니다.
종료값인 arr_len은 포함하지 않습니다.
range(0, 12, 2)
결과:
0, 2, 4, 6, 8, 10
③ remove(값)
arr_val.remove(4)
리스트에서 값이 4인 요소를 삭제합니다.
주의할 점은 4번 인덱스를 삭제하는 것이 아니라, 리스트 안에 있는 값 4를 삭제한다는 것입니다.
④ find('i')
문자열.find('i')
문자열에서 'i'가 처음 나타나는 위치를 반환합니다.
찾는 문자가 없으면 오류가 발생하는 것이 아니라 다음 값을 반환합니다.
-1
3. 풀이
3-1. 문자열 입력 후 분리
첫 번째 문장은 다음과 같습니다.
arr_str = input('input String :').split('-')
입력값은 다음과 같습니다.
information-technology
하이픈 -을 기준으로 문자열을 나누면 다음과 같은 리스트가 만들어집니다.
arr_str = ["information", "technology"]
각 요소를 인덱스로 확인하면 다음과 같습니다.
인덱스값
| arr_str[0] | "information" |
| arr_str[1] | "technology" |
따라서 다음 값은 "technology"입니다.
arr_str[1] = "technology"
3-2. 숫자 입력 후 정수로 변환
두 번째 문장은 다음과 같습니다.
arr_len = int(input('input number : '))
입력값은 12입니다.
arr_len = 12
input()으로 입력받은 값은 문자열이므로, int()를 사용해 정수로 변환합니다.
3-3. 짝수 리스트 생성
세 번째 문장은 다음과 같습니다.
arr_val = list(range(0, arr_len, 2))
arr_len은 12이므로 실제 실행은 다음과 같습니다.
arr_val = list(range(0, 12, 2))
0부터 12 직전까지 2씩 증가하는 숫자는 다음과 같습니다.
0 → 2 → 4 → 6 → 8 → 10
따라서 리스트는 다음과 같이 만들어집니다.
arr_val = [0, 2, 4, 6, 8, 10]
range()는 종료값인 12를 포함하지 않습니다.
3-4. 리스트에서 값 4 삭제
네 번째 문장은 다음과 같습니다.
arr_val.remove(4)
현재 리스트는 다음과 같습니다.
[0, 2, 4, 6, 8, 10]
remove(4)를 실행하면 값이 4인 요소가 삭제됩니다.
arr_val = [0, 2, 6, 8, 10]
삭제 후 인덱스를 다시 확인해야 합니다.
인덱스01234
| 값 | 0 | 2 | 6 | 8 | 10 |
따라서 다음 값은 6입니다.
arr_val[2] = 6
3-5. "technology"에서 문자 'i' 찾기
출력문에는 다음 표현이 있습니다.
arr_str[1].find('i')
arr_str[1]은 다음 문자열입니다.
technology
문자의 위치를 확인하면 다음과 같습니다.
인덱스0123456789
| 문자 | t | e | c | h | n | o | l | o | g | y |
"technology"에는 문자 'i'가 없습니다.
따라서 find('i')는 -1을 반환합니다.
arr_str[1].find('i') = -1
3-6. 최종 계산
출력문은 다음과 같습니다.
print(arr_str[1].find('i') + arr_val[2])
앞에서 구한 값을 대입합니다.
print(-1 + 6)
계산 결과는 다음과 같습니다.
5
4. 실행 흐름 한눈에 보기
information-technology
↓ split('-')
["information", "technology"]
↓
arr_str[1] = "technology"
↓ find('i')
-1
range(0, 12, 2)
↓
[0, 2, 4, 6, 8, 10]
↓ remove(4)
[0, 2, 6, 8, 10]
↓
arr_val[2] = 6
최종 계산:
-1 + 6 = 5
5. 정답
5
6. 시험에서 주의할 함정
remove(4)의 의미
arr_val.remove(4)
잘못된 해석:
4번 인덱스의 값을 삭제한다.
올바른 해석:
리스트 안에서 값 4를 찾아 삭제한다.
find()에서 문자를 찾지 못한 경우
"technology".find('i')
문자 'i'가 없더라도 오류가 발생하지 않습니다.
결과: -1
7. 시험 풀이 요약
"information-technology"를 '-'로 분리하면
["information", "technology"]가 된다.
range(0, 12, 2)를 리스트로 만들면
[0, 2, 4, 6, 8, 10]이다.
remove(4)를 실행하면
[0, 2, 6, 8, 10]이 되므로 arr_val[2]는 6이다.
"technology"에는 문자 'i'가 없으므로
find('i')의 결과는 -1이다.
따라서 -1 + 6 = 5가 출력된다.
'파이썬' 카테고리의 다른 글
| 줄바꿈 뒤에 /를 붙이고, 실수를 반올림하라(Chatgpt) (0) | 2026.07.11 |
|---|---|
| Python 리스트·문자열 함수 분석 문제 풀이(Claude) (0) | 2026.07.11 |
| 파이썬 슬라이싱 — "기차 칸" 비유로 이해하기(Claude) (0) | 2026.07.11 |
| Python 문자열 처리 문제(Chatgpt) (0) | 2026.07.11 |
| 파이썬 핵심 개념 커리큘럼 (0) | 2026.07.08 |