SET 12 — 정답 및 해설 (긴 코드)¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ③ | ① | ② | ① | ② | ① | ① | ② | ② | ① |
1. 정답 ③ aebacy
길이 5 이상인 단어만(apple, banana, cherry) 첫·끝 글자를 이어 붙임: ae + ba + cy = aebacy. kiwi(4)는 제외. 핵심: 인덱싱 w[0]/w[-1], 길이 필터.
2. 정답 ① 13 7 3
15의 배수(both) 3개. 3의 배수 중 15의 배수가 아닌 것 13개, 5의 배수 중 아닌 것 7개. 핵심: elif 순서가 결과를 좌우(15 배수를 먼저 걸러야 함).
3. 정답 ② 12
a, b = b, a % b를 반복하는 유클리드 호제법 → gcd(48, 36) = 12. 핵심: 동시 대입과 나머지 연산.
4. 정답 ① 15 15
주대각선 1+5+9 = 15, 반대각선 3+5+7 = 15. 핵심: matrix[i][i]와 matrix[i][n-1-i].
5. 정답 ② 29
일의 자리를 떼며 재귀로 합산: 5+7+8+9 = 29. 핵심: 재귀 종료조건(n < 10)과 n%10, n//10.
6. 정답 ① 2 1 4
a는 3번 답 중 2번 정답, b는 1번 정답. total_questions는 클래스 변수라 모든 호출이 누적 → 4. 핵심: 클래스 변수(공유)와 인스턴스 변수(독립)의 구분.
7. 정답 ① [5.0, 'inf', 3.0]
10/2=5.0, 5/0은 ZeroDivisionError→"inf", 9/3=3.0. 핵심: 루프 안 튜플 언패킹 + 예외 처리, /는 실수.
8. 정답 ② 5
1~29의 완전제곱수는 1, 4, 9, 16, 25로 5개. floor(root) == root로 판정. 핵심: math.sqrt/math.floor로 완전제곱 검사.
9. 정답 ② 2 2
apple 2개 차감(5→3), banana 5개는 재고 3 부족→거부, cherry는 재고에 없음→거부, apple 1개 더 차감(3→2). 거부 2건. 핵심: in과 수량 비교로 조건부 갱신.
10. 정답 ① C 4 False
득표 A 3, B 2, C 4. 최다 C(4표), 마지막 갱신에서 tie=False. 핵심: 딕셔너리 집계 + 최댓값/동점 추적.