SET 10 — 정답 및 해설 (최고난도 종합)¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ① | ② | ② | ② | ② | ① | ③ | ② | ① | ② |
1. 정답 ① 1222
*가 +보다 우선. str(2) * 3 = "222", str(1) + "222" = "1222".
2. 정답 ② 13
**가 가장 먼저. 3 ** 2 = 9 → 7 % 9 = 7, 2 * 3 = 6. 7 + 6 = 13.
3. 정답 ② 8
2~20의 소수를 세는 이중 루프. 소수는 2,3,5,7,11,13,17,19로 8개.
4. 정답 ② 5
0이면 continue로 건너뜀. 0이 아닌 값의 개수: 1,3 / 5 / 7,8 → 5개.
5. 정답 ② 5
f(10)=f(5)+1, f(5)=f(4)+1, f(4)=f(2)+1, f(2)=f(1)+1=2. 거슬러 올라가면 f(4)=3, f(5)=4, f(10)=5.
6. 정답 ① 300 150
grow()는 호출 시점의 Wallet.rate를 사용. 이미 rate = 3으로 바뀐 뒤라 a는 100*3=300, b는 50*3=150. (클래스 변수 변경이 모든 객체에 영향)
7. 정답 ③ 3
안쪽 finally의 return 2가 return 1을 덮고, 다시 바깥 finally의 return 3이 그것을 덮음. 가장 바깥 finally의 반환값이 최종 → 3.
8. 정답 ② 12
math.sqrt(10) = 3.16... → ceil = 4. math.pi = 3.14... → floor = 3. 4 * 3 = 12.
9. 정답 ① (1, 'a')
튜플 리스트를 sort()하면 각 튜플의 첫 원소 기준으로 정렬 → [(1,'a'), (2,'b'), (3,'c')]. 첫 번째는 (1, 'a').
10. 정답 ② ['Kim', 'Park']
평균이 85 이상인 학생만 모음. Kim (90+80)/2 = 85 ✓, Lee (70+60)/2 = 65 ✗, Park (95+85)/2 = 90 ✓ → ['Kim', 'Park'].