[피드백]
* 오답문제만 오답이라고 채점
문제1) 오답
[잘하신 부분] map을 활용한 for 문 출력
[보완해야할 점]
1. 기준치값(n)을 함수의 두번째 전달인자로 받아 설계할 것2. if구문에서 20넘는 것은 과잉으로 잘 구현 했으나 else: 구문에서는 20보다 같거나 작은 것이 과잉으로 판단되었음. 이부분 오류
문제2)
[잘하신 부분] 정규표현식 모듈 re와 함수 return 부분을 잘 적용함
[보완해야할 점] map과 print 를 함수 내에 작성하여 완성된 함수로 작성했으면 best
문제3)
[잘하신 부분] 좀더 general 한 문제 ex 동명이인이 없는 참여자의 경우 해당 코드가 작성하지 않을 것이나 아이디어는 좋은 방법이라고 여겨짐. 문제를 조금 단순하게 설계한 것의 한계이며 정답은 맞음
[보완해야할 점] 좀 더 제너럴한 풀이방법도 고려해보면 좋겠습니다.
문제4)
[잘하신 부분] x,y,z 를 명확하게 명시한 것은 파라미터를 외부에서 받아 내부 클래스 속성에 전달하는 것을 이해했기때문에 가능한 것이라고 생각됨 이해도 good
[보완해야할 점] 다만, 클래스, 함수를선언할 때 변수명은 직관적인게 좋습니다.
(미래의 나 그리고 동료가 헷갈리지 않도록)
[복습할 코드 내용]
문제1) 오답
- 내가 쓴 코드:
inventory_data = [
{'name': 'Apple', 'quantity': 30},
{'name': 'Banana', 'quantity': 20},
{'name': 'Orange', 'quantity': 50}
]
def check_quantity(inventory_data):
if inventory_data['quantity'] > 25:
return inventory_data['name'], '과잉'
else:
return inventory_data['name'], '부족'
for d, n in map(check_quantity, inventory_data):
print(d, n)
- 정답 코드:
def check_inventory(inventory_data, threshold):
low_stock = []
high_stock = []
# threshold = 30
inven_len = len(inventory_data)
for i in range(inven_len):
product = inventory_data[i][0]
quantity = inventory_data[i][1]
if quantity > threshold:
# print(f'{product}는 과잉입니다.')
high_stock.append(product)
elif quantity < threshold:
# print(f'{product}는 부족입니다.')
low_stock.append(product)
else: # 동률인경우
pass
return high_stock, low_stock
# print(low_stock, high_stock)
low, high = check_inventory(inventory_data, 30)
print(low, high)
for product, quantity in inventory_data:
print(product, quantity)
문제3)
- 내가 쓴 코드:
# 예시 데이터
participant = ["mike", "lisa", "tom", "lisa"]
completion = ["tom", "mike", "lisa"]
find_non_completer = participant + completion #중복 원소를 추출해야 하니 2개 리스트 합침
person = max(find_non_completer, key=find_non_completer.count) #제일 등장한 횟수가 많은 사람 추출
print(person)
- 정답 코드:
1) dictionary 이용한 방법
# dictionary 형으로 만들기
def find_non_completer(participant, completion):
my_dict = {}
for name in participant:
# name이 없으면 values값 0으로 설정
my_dict[name] = my_dict.get(name,0) + 1
for name2 in completion:
my_dict[name2] = my_dict[name2] -1
for name3 in my_dict:
if my_dict[name3] == 1:
return name3
- 정답 코드:
2) 모듈을 이용한 방법
from collections import Counter
# Counter(participant)
result = Counter(participant) - Counter(completion)
answer = list(result.keys())
print(answer[0])
[배운 점]
- 문제 1번은 정답 코드를 봐도 무슨 말인지 1도 모르겠다. 기준치가 25가 아니면 뭐란 말임..? 매우 납득 안됨.

- 개인과제가 이번주는 나오지 바라질 않았건만 나왔다. 이번엔 머신 모델링이라는데 강의만 들으면 간단히 구현할 수 있을 정도라고 한다. 지난 월요일에 상을 당해서 주중에 강의를 1개도 듣질 못했다. 주말에 빡세게 해야 한다.
- 차주부터 심화 프로젝트가 시작되니 바짝 벼락치기를 해야 한다. 나는 머리가 좋으니까 할 수 있다!!!
'Python' 카테고리의 다른 글
| 2/6 - 머신러닝모델링; 데이터 전처리_이상치(Outlier) 처리 방법 (1) | 2024.02.06 |
|---|---|
| 2/5 - 머신러닝모델링; 선형회귀&로지스틱회귀 (1) | 2024.02.05 |
| 1/26 - Pandas&Python; 기초 문법② & 개인과제 (0) | 2024.01.26 |
| 1/25 - Pandas&Python; Python 기초 문법① (0) | 2024.01.25 |
| 1/23 - 기초 통계학 개념 (0) | 2024.01.23 |