👤 응시자 정보
각 코드를 읽고 실행 결과로 출력되는 내용을 직접 입력하세요. 채점 후 결과 파일은 학번_이름_정렬_득점_응시시각.txt 형식으로 다운로드됩니다.
결과 다운로드
📘 수행평가 안내
| 항목 | 내용 |
|---|---|
| 문항 수 | 15문항 |
| 평가 방식 | 코드의 출력 결과를 키보드로 직접 입력 |
| 채점 기준 | 문항당 1점, 전체 15점. 줄바꿈·공백은 일부 보정되지만 출력 순서와 내용은 정확해야 함 |
| 결과 산출 | 학번_이름_정렬_득점_응시시각.txt |
1. 숫자 리스트 오름차순·내림차순 정렬
제시 코드
class NumberSorter:
def __init__(self, numbers):
self.numbers = numbers
def ascending(self):
return sorted(self.numbers)
def descending(self):
return sorted(self.numbers, reverse=True)
sorter = NumberSorter([8, 3, 1, 9, 5])
print("오름차순:", sorter.ascending())
print("내림차순:", sorter.descending())
예상 출력 결과를 키보드로 입력하세요
2. 문자열 알파벳순 정렬
제시 코드
class WordAlphabetSorter:
def __init__(self, words):
self.words = words
def sort_words(self):
return sorted(self.words)
def reverse_words(self):
return sorted(self.words, reverse=True)
words = WordAlphabetSorter(["banana", "apple", "cherry", "date"])
print(words.sort_words())
print(words.reverse_words())
예상 출력 결과를 키보드로 입력하세요
3. 순차 탐색으로 값 찾기
제시 코드
class LinearSearch:
def __init__(self, data):
self.data = data
def find(self, target):
for index, value in enumerate(self.data):
if value == target:
return index
return -1
searcher = LinearSearch([10, 20, 30, 40, 50])
print(searcher.find(30))
print(searcher.find(99))
예상 출력 결과를 키보드로 입력하세요
4. 최댓값과 최솟값 찾기
제시 코드
class MinMaxFinder:
def __init__(self, numbers):
self.numbers = numbers
def minimum(self):
return min(self.numbers)
def maximum(self):
return max(self.numbers)
finder = MinMaxFinder([42, 17, 88, 23, 65])
print("최솟값:", finder.minimum())
print("최댓값:", finder.maximum())
예상 출력 결과를 키보드로 입력하세요
5. 문자열 길이 기준 정렬
제시 코드
class WordLengthSorter:
def __init__(self, words):
self.words = words
def sort_by_length(self):
return sorted(self.words, key=len)
def longest(self):
return max(self.words, key=len)
words = WordLengthSorter(["AI", "Python", "Data", "Algorithm"])
print(words.sort_by_length())
print("가장 긴 단어:", words.longest())
예상 출력 결과를 키보드로 입력하세요
6. 학생 점수 기준 순위 정렬
제시 코드
class StudentRanker:
def __init__(self, students):
self.students = students
def rank(self):
return sorted(self.students, key=lambda x: x["점수"], reverse=True)
def top_student(self):
return self.rank()[0]
students = [
{"이름": "김민수", "점수": 88},
{"이름": "이지은", "점수": 95},
{"이름": "박서준", "점수": 76}
]
ranker = StudentRanker(students)
print(ranker.rank())
print("1등:", ranker.top_student())
예상 출력 결과를 키보드로 입력하세요
7. 이진 탐색으로 빠르게 찾기
제시 코드
class BinarySearch:
def __init__(self, sorted_data):
self.data = sorted_data
def find(self, target):
left = 0
right = len(self.data) - 1
while left <= right:
mid = (left + right) // 2
if self.data[mid] == target:
return mid
elif self.data[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
searcher = BinarySearch([1, 3, 5, 7, 9, 11, 13])
print(searcher.find(9))
print(searcher.find(4))
예상 출력 결과를 키보드로 입력하세요
8. 상품 가격 정렬과 최저가 탐색
제시 코드
class ProductAnalyzer:
def __init__(self, products):
self.products = products
def sort_by_price(self):
return sorted(self.products, key=lambda x: x["가격"])
def cheapest(self):
return self.sort_by_price()[0]
products = [
{"상품": "노트북", "가격": 1200000},
{"상품": "마우스", "가격": 25000},
{"상품": "키보드", "가격": 70000}
]
analyzer = ProductAnalyzer(products)
print(analyzer.sort_by_price())
print("최저가 상품:", analyzer.cheapest())
예상 출력 결과를 키보드로 입력하세요
9. 키워드 포함 도서 검색
제시 코드
class BookSearch:
def __init__(self, books):
self.books = books
def search_keyword(self, keyword):
return [book for book in self.books if keyword in book["제목"]]
def sort_by_year(self):
return sorted(self.books, key=lambda x: x["연도"])
books = [
{"제목": "파이썬 알고리즘", "연도": 2021},
{"제목": "자료구조 입문", "연도": 2019},
{"제목": "알고리즘 심화", "연도": 2023}
]
library = BookSearch(books)
print(library.search_keyword("알고리즘"))
print(library.sort_by_year())
예상 출력 결과를 키보드로 입력하세요
10. 중복 제거 후 정렬
제시 코드
class UniqueSorter:
def __init__(self, data):
self.data = data
def unique_sorted(self):
return sorted(set(self.data))
def count_unique(self):
return len(set(self.data))
numbers = UniqueSorter([3, 1, 2, 3, 2, 5, 1, 4])
print(numbers.unique_sorted())
print("고유값 개수:", numbers.count_unique())
예상 출력 결과를 키보드로 입력하세요
11. 택배 배송 우선순위 정렬
제시 코드
class DeliveryScheduler:
def __init__(self, orders):
self.orders = orders
def sort_by_priority(self):
return sorted(
self.orders,
key=lambda x: (x["긴급도"], x["거리"]),
reverse=False
)
def next_delivery(self):
return self.sort_by_priority()[0]
orders = [
{"주문번호": "A01", "긴급도": 2, "거리": 5},
{"주문번호": "B02", "긴급도": 1, "거리": 8},
{"주문번호": "C03", "긴급도": 1, "거리": 3}
]
scheduler = DeliveryScheduler(orders)
print(scheduler.sort_by_priority())
print("다음 배송:", scheduler.next_delivery())
예상 출력 결과를 키보드로 입력하세요
12. 병원 환자 대기열 정렬
제시 코드
class PatientQueue:
def __init__(self, patients):
self.patients = patients
def sort_by_severity(self):
return sorted(
self.patients,
key=lambda x: (-x["위급도"], x["도착순서"])
)
def next_patient(self):
return self.sort_by_severity()[0]
patients = [
{"이름": "환자A", "위급도": 3, "도착순서": 1},
{"이름": "환자B", "위급도": 5, "도착순서": 2},
{"이름": "환자C", "위급도": 5, "도착순서": 1}
]
queue = PatientQueue(patients)
print(queue.sort_by_severity())
print("다음 진료:", queue.next_patient())
예상 출력 결과를 키보드로 입력하세요
13. 검색 엔진 결과 정렬
제시 코드
class SearchEngine:
def __init__(self, pages):
self.pages = pages
def search(self, keyword):
result = []
for page in self.pages:
if keyword in page["제목"] or keyword in page["내용"]:
result.append(page)
return sorted(result, key=lambda x: x["점수"], reverse=True)
pages = [
{"제목": "파이썬 기초", "내용": "정렬과 탐색 설명", "점수": 80},
{"제목": "알고리즘 심화", "내용": "이진 탐색과 정렬", "점수": 95},
{"제목": "웹 디자인", "내용": "HTML CSS", "점수": 70}
]
engine = SearchEngine(pages)
print(engine.search("탐색"))
예상 출력 결과를 키보드로 입력하세요
14. 성적 데이터에서 등급별 탐색과 정렬
제시 코드
class GradeAnalyzer:
def __init__(self, students):
self.students = students
def add_grade(self):
for student in self.students:
score = student["점수"]
if score >= 90:
student["등급"] = "A"
elif score >= 80:
student["등급"] = "B"
else:
student["등급"] = "C"
return self.students
def search_grade(self, grade):
return [s for s in self.students if s.get("등급") == grade]
def sort_by_score(self):
return sorted(self.students, key=lambda x: x["점수"], reverse=True)
students = [
{"이름": "김", "점수": 95},
{"이름": "이", "점수": 84},
{"이름": "박", "점수": 76},
{"이름": "최", "점수": 91}
]
analyzer = GradeAnalyzer(students)
analyzer.add_grade()
print("A등급:", analyzer.search_grade("A"))
print("점수순:", analyzer.sort_by_score())
예상 출력 결과를 키보드로 입력하세요
15. 로그 데이터 오류 탐색과 시간 정렬
제시 코드
class LogAnalyzer:
def __init__(self, logs):
self.logs = logs
def search_error(self):
return [log for log in self.logs if log["상태"] == "ERROR"]
def sort_by_time(self):
return sorted(self.logs, key=lambda x: x["시간"])
def latest_error(self):
errors = self.search_error()
if not errors:
return None
return sorted(errors, key=lambda x: x["시간"], reverse=True)[0]
logs = [
{"시간": "09:10", "상태": "OK", "메시지": "start"},
{"시간": "09:15", "상태": "ERROR", "메시지": "file missing"},
{"시간": "09:12", "상태": "OK", "메시지": "load"},
{"시간": "09:20", "상태": "ERROR", "메시지": "timeout"}
]
analyzer = LogAnalyzer(logs)
print("오류 로그:", analyzer.search_error())
print("시간순:", analyzer.sort_by_time())
print("최근 오류:", analyzer.latest_error())