콘텐츠로 이동

SET 15 — 정답 및 해설 (긴 코드·최고난도)

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

1. 정답 ② a3b3c3d1 같은 문자가 이어지는 길이를 세어 문자+개수로 인코딩: a3·b3·c3·d1. 마지막 d도 개수 1이 붙음. 핵심: 중첩 while로 연속 구간 묶기.

2. 정답 ③ perfect abundant deficient 자기 자신을 뺀 약수 합과 비교: 6=1+2+3(perfect), 12<1+2+3+4+6=16(abundant), 8>1+2+4=7(deficient). 핵심: 약수 합 분류.

3. 정답 ② 7.07 뉴턴 반복법으로 sqrt(50)에 수렴 → 7.07. 핵심: 직전 값과의 차이가 작아질 때까지 반복(abs).

4. 정답 ② 2 17 행 합: 13, 15, 17. 최대인 2번 행(합 17). 핵심: 행별 합과 최댓값 행 추적.

5. 정답 ② 1 7 31 원반 n개 이동 횟수 2·H(n-1)+1 = 2ⁿ-1: H(1)=1, H(3)=7, H(5)=31. 핵심: 재귀 점화식.

6. 정답 ① 2 170 150 추가 → 100 채워 레벨2(잔여 50). 120 추가 → 170, 레벨2 기준 200 미만이라 레벨업 없음. 핵심: 메서드 안 while로 연속 레벨업 처리.

7. 정답 ② div0 range bad op 10/0ZeroDivisionErrordiv0. [5][2]IndexErrorrange. "?"raise ValueErrorbad op. 핵심: 발생 예외별로 다른 분기.

8. 정답 ② 15 2~49의 소수는 15개. sqrt(n)까지만 나눠 봐도 충분. 핵심: 제곱근 한계까지 검사하는 효율적 소수 판별.

9. 정답 ① [1, 2, 3, 4, 7, 8, 9] 두 정렬 리스트를 앞에서부터 비교하며 작은 값을 차례로 담는 병합. 핵심: 투 포인터 병합 + 남은 원소 처리.

10. 정답 ② 1 3 5 내림차순 점수 [92,92,85,85,78]. 자신보다 큰 점수 개수 +1이 순위 → Lee(92)=1위, Kim(85)=3위, Park(78)=5위(동점은 같은 순위, 다음 순위 건너뜀). 핵심: 동점 처리 순위 계산.