콘텐츠로 이동

코딩 논술 Practice Set 10


문제 1. CSV 한 줄 파싱기

문제 설명

이름,국어,영어,수학 형식으로 한 줄에 입력받아 성적 카드를 출력하는 프로그램을 작성하세요.

  • 쉼표(,)를 구분자로 split()하세요.
  • 세 과목 점수의 합계와 평균(소수점 첫째 자리)을 출력합니다.
  • 평균이 90 이상이면 "최우수", 80 이상이면 "우수", 70 이상이면 "보통", 미만이면 "미달" 출력.

입출력 예시

성적 입력 (이름,국어,영어,수학): 박서연,88,95,91
이름: 박서연
국어: 88점
영어: 95점
수학: 91점
합계: 274점
평균: 91.3점
종합 평가: 최우수

문제 2. 택시 요금 계산기

문제 설명

승차 거리, 대기 시간, 탑승 시간대를 입력받아 택시 요금을 계산하는 프로그램을 작성하세요.

요금 구조: - 기본요금: 4,800원 (2 km 이하) - 2 km 초과 시: 131m마다 100원 추가 (131m 미만은 올림 처리) - 대기 추가: 30초마다 100원 (30초 미만은 올림) - 심야 할증(night): 22시~04시 — 전체 요금에 20% 추가 (원 단위 올림)

입력

거리 (정수, m), 대기 시간 (정수, 초), 시간대 (day 또는 night)

입출력 예시

거리 (m): 5000
대기 시간 (초): 90
시간대 (day/night): night
기본 요금: 4800원
거리 추가: 2300원
대기 추가: 300원
심야 할증: 1480원
총 요금: 8880원

문제 3. 최대공약수·최소공배수 계산기

문제 설명

두 양의 정수를 입력받아 최대공약수(GCD)와 최소공배수(LCM)를 구하는 프로그램을 작성하세요.

  • 유클리드 호제법을 while 반복문으로 직접 구현하세요.
  • math 모듈 사용 금지.
  • GCD(a, b) = GCD(b, a % b), LCM = a × b ÷ GCD

입출력 예시

첫 번째 수: 72
두 번째 수: 48
최대공약수: 24
최소공배수: 144

문제 4. 성적 분석 시스템 (함수 분리)

문제 설명

다음 세 함수를 정의하고, 이를 조합하여 성적 분석 프로그램을 작성하세요.

  • get_grade(score): 점수를 받아 등급 문자열(A~F) 반환
  • compute_average(scores): 점수 리스트를 받아 평균을 반환
  • print_report(names, scores): 이름 리스트와 점수 리스트를 받아 보고서 출력

보고서 내용: 이름·점수·등급 목록, 평균, 최고점, 최저점 (최고·최저는 직접 비교로 구현)

입출력 예시

학생 수: 3
이름: 김도윤  점수: 85
이름: 이아린  점수: 93
이름: 최준혁  점수: 71
========== 성적 보고서 ==========
김도윤  85점  B
이아린  93점  A
최준혁  71점  C
--------------------------------
평균: 83.0점
최고점: 이아린 (93점)
최저점: 최준혁 (71점)