콘텐츠로 이동

SET 14 — 정답 및 해설 (긴 코드)

문항 1 2 3 4 5 6 7 8 9 10
정답

1. 정답 ② True False True 양 끝에서 좁혀오며 비교: level·noon은 회문(True), hello는 아님(False). 핵심: 투 포인터 i, jwhile.

2. 정답 ① win lose draw wins[rock]=scissors라 상대가 scissors면 승, paper면 패. 같으면 무승부. 핵심: 딕셔너리로 규칙(이기는 관계) 표현.

3. 정답 ② 111 9232 콜라츠 수열(27): 111단계 만에 1에 도달하며 도중 최댓값은 9232. 핵심: 진행 중 최댓값 갱신, 짝/홀 분기.

4. 정답 ② 3 합이 6인 쌍: (1,5), (7,-1), (1,5) — 인덱스 기준 3쌍. 핵심: j = i+1로 중복 없이 모든 쌍 검사.

5. 정답 ① 5 15 fib(5) = 5. 함수 호출은 매번 1씩 누적되어 총 15회. 핵심: 재귀 호출 횟수를 global 변수로 셈(중복 계산 비효율 확인).

6. 정답 ② 10 20 [30, 40] 큐(FIFO): 10·20·30 추가 → dequeue로 10(앞에서 꺼냄) → 40 추가 → dequeue로 20. 남은 것 [30, 40]. 핵심: pop(0)로 맨 앞 제거.

7. 정답 ① ([5, 10, 7], 3) 음수는 raise ValueError로, 변환 불가(abc)도 ValueError로 처리되어 무효 3건. 유효값 [5, 10, 7]. 핵심: 직접 raise한 예외도 같은 except가 처리.

8. 정답 ② 20 6! / (3! · 3!) = 720 / 36 = 20 (조합 ₆C₃). 핵심: math.factorial로 조합 수 계산.

9. 정답 ② [4, 4, 7, 7, 9, 9, 9] 지금까지의 최댓값을 매 단계 기록 → 한 번 9가 나오면 그 뒤로 계속 9. 핵심: 누적(running) 최댓값.

10. 정답 ③ 6 9 3 길이 3인 단어 6개(the·fox·the·dog·the·end), 전체 9단어, 등장한 길이 종류는 3·5·4의 3가지. 핵심: 길이를 키로 하는 집계.