Python 리스트·문자열 함수 분석 문제 풀이(Claude)
2026. 7. 11. 10:33ㆍ파이썬
📌 문제
다음 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
단계별 실행
1행 — arr_str
"information-technology".split('-')
# → ["information", "technology"]
arr_str[0] = "information", arr_str[1] = "technology"
2행 — arr_len
arr_len = 12
3행 — arr_val
list(range(0, 12, 2))
# → [0, 2, 4, 6, 8, 10]
4행 — arr_val.remove(4)
arr_val = [0, 2, 6, 8, 10]
값 4를 리스트에서 제거합니다. (인덱스 4번이 아니라 값이 4인 원소를 찾아서 삭제)
5행 — print(arr_str[1].find('i') + arr_val[2])
- arr_str[1] = "technology"
- "technology".find('i') → t-e-c-h-n-o-l-o-g-y에는 'i'가 없음 → -1 반환
- arr_val[2] = [0, 2, 6, 8, 10]의 인덱스 2번 = 6
-1 + 6 = 5
✅ 최종 실행 결과
5
⚠️ 함정 포인트
- remove()는 값을 지운다, 인덱스가 아니다 arr_val.remove(4)는 인덱스 4번 원소를 지우는 게 아니라 값이 4인 원소를 찾아 지웁니다.
- find()는 못 찾으면 -1을 반환한다 "technology"에는 'i'가 없다는 걸 놓치기 쉽습니다. 이 문제의 핵심 트릭입니다.
- range(0, 12, 2)는 12를 포함하지 않는다 0부터 시작해서 2씩 증가하며 12 직전까지 → [0, 2, 4, 6, 8, 10]
🎯 핵심 개념 정리
split(구분자)
지정한 구분자를 기준으로 문자열을 나눠 리스트로 반환합니다.
"a-b-c".split('-')
# → ["a", "b", "c"]
range(시작, 종료, 간격)
종료값은 포함하지 않습니다.
list(range(0, 12, 2))
# → [0, 2, 4, 6, 8, 10]
list.remove(값)
리스트에서 해당 값을 가진 첫 번째 원소를 삭제합니다. (인덱스 삭제가 아님)
[0, 2, 4, 6].remove(4)
# → [0, 2, 6]
인덱스로 삭제하려면 del list[인덱스] 또는 list.pop(인덱스)를 사용해야 합니다.
str.find(문자)
찾는 문자의 첫 인덱스를 반환하고, 없으면 -1을 반환합니다. (index()와 달리 에러가 나지 않음)
"technology".find('i') # -1 (없음)
"information".find('i') # 0 (있음)
🧠 미니 퀴즈
- 입력을 "data-science", 12로 바꾸면 결과는 어떻게 될까요?
- arr_val.remove(4)를 arr_val.pop(4)로 바꾸면 어떤 차이가 생길까요?
- arr_str[1].find('i')를 arr_str[0].find('i')로 바꾸면 결과는?
정답
- arr_str = ["data", "science"], arr_str[1].find('i')는 "science"에서 'i'가 4번 인덱스에 있으므로 4. arr_val[2]는 그대로 6. 결과 = 4 + 6 = 10
- remove(4)는 값 4를 찾아 지우지만, pop(4)는 인덱스 4번 원소(8)를 지웁니다. 결과 리스트가 [0, 2, 4, 6, 10]이 되어 arr_val[2]가 4로 바뀌므로 최종 결과도 달라집니다.
- "information".find('i')는 0번 인덱스에서 바로 발견되므로 0. 결과 = 0 + 6 = 6
'파이썬' 카테고리의 다른 글
| Python 포맷 문자열과 지수표기법 문제 풀이(Claude) (0) | 2026.07.11 |
|---|---|
| 줄바꿈 뒤에 /를 붙이고, 실수를 반올림하라(Chatgpt) (0) | 2026.07.11 |
| 문자열은 나누고, 숫자는 골라내기(Chatgpt) (0) | 2026.07.11 |
| 파이썬 슬라이싱 — "기차 칸" 비유로 이해하기(Claude) (0) | 2026.07.11 |
| Python 문자열 처리 문제(Chatgpt) (0) | 2026.07.11 |