콘텐츠로 이동

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

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

1. 정답 ① 180 4 split(",")로 4조각 ["12","34","56","78"]. 각각 정수로 바꿔 더하면 12+34+56+78 = 180. 핵심: splitint 변환.

2. 정답 ② 2 2000(400 배수)·2024(4 배수)는 윤년, 1900(100 배수지만 400 아님)·2023은 평년 → 2개. 핵심: 윤년 판정의 조건 순서(400 → 100 → 4).

3. 정답 ② 42 7 범위를 반씩 줄이는 이분 탐색. 50→25→37→43→40→41→42로 7번 만에 발견. 핵심: mid 계산과 범위 갱신.

4. 정답 ① 10 i+j <= 5를 만족하는 (i, j) 쌍의 수: i=1→4, i=2→3, i=3→2, i=4→1 = 10. 핵심: 조건이 걸린 중첩 루프 카운팅.

5. 정답 ② 1024 지수를 절반으로 나누는 빠른 거듭제곱: 2^10 = 1024. 핵심: 짝수/홀수에 따라 분기하는 재귀.

6. 정답 ① 30 3 최댓값 30. 24보다 큰 값은 25, 30, 28로 3개. 핵심: 인스턴스 리스트에 대한 max와 개수 세기 메서드.

7. 정답 ① 1 / no index / no key 정상 접근은 1. 인덱스 5는 없어 IndexErrorno index. data[1]={"b":2}에 키 "a" 없음→KeyErrorno key. 핵심: 예외 종류별 분기 순서.

8. 정답 ② 2.0 평균 5, 분산 32/8 = 4, 표준편차 sqrt(4) = 2.0. 핵심: 편차 제곱 합 + math.sqrt.

9. 정답 ① [3, 1, 2, 4, 5] 처음 등장한 순서를 유지하며 중복 제거 → 3, 1, 2, 4, 5. 핵심: not in으로 첫 등장만 채택.

10. 정답 ① 25200 3 합계 28000 → 25000 이상이라 10% 할인 int(28000*0.9)=25200. pen은 3번 담김. 핵심: 딕셔너리 조회·누적·할인 조건·개수 세기.