오늘 한 일
- 코드카타
28. 없는 숫자 더하기
def solution(numbers):
num=[]
for i in range(10):
if i not in numbers:
num.append(i)
return sum(num)
오랜만에 한번에 해결!!
29. 제일 작은 수 제거하기
def solution(arr):
answer = []
for i in arr:
min = 0
if i < min:
min = i
answer.append(arr.remove(i))
if len(answer) ==0 :
answer.append(-1)
else:
answer = answer
return answer
arr만큼 반복하는데 이때 i가 최소값보다 작으면 i가 최소값이 되고 -> answer에는 arr에서 최소값인 i를 제거하고 담은 다음 마지막에 answer의 길이가 0이면 -1을 추가하는 방법으로 하려고 했으나, null이 출력됨
오답 분석 by 제미나이 :
1. min=0이 for문 안에 있어서 반복문이 반복 될 때 마다 0으로 돌아감
2. 리스트 안이 모두 양수이면 i<0이 항상 거짓이 되어버림
3. arr.remove(i) 여기서 i는 최솟값이 아니다(min으로 했어야햇는데, 이건 내 실수....)
4. remove는 리스트 수정만 하고 아무것도 반환하지 않음 !!! -> None을 반환함 -> answer.append(None)이 되는것.
수정
↓
def solution(arr):
if len(arr) <= 1:
return[-1]
arr.remove(min(arr))
return arr
30. 가운데 글자 가져오기
def solution(s):
if len(s)%2 ==0:
answer = s[(len(s)/2):((len(s)/2)+2)]
elif len(s)%2!=0:
answer = s[(len(s)/2):(len(s)/2+1)]
return answer
전체 길이가 짝수인 경우랑 홀수인 경우로 나눴는데 인덱스 계산에서 오류가 남
1. 나누기 / 기호를 사용하면 값이 2 가 아니라 2.0(소수) 형태로 나옴 -> 인덱스 안에는 항상 정수. -> //로 바꿔보기
2. 길이가 짝수인 경우, s[2:4]가 되기때문에 인덱스 2,3 을 가져옴 -> 기준점에서 -1을 한 곳 부터 시작해야 함.
수정
↓
def solution(s):
if len(s)%2 ==0:
answer = s[(len(s)//2-1):((len(s)//2)+1)]
elif len(s)%2!=0:
answer = s[(len(s)//2):(len(s)//2+1)]
return answer
좀 더 보기에 깔끔하게 할 수 있다
def solution(s):
# 길이를 2로 나눈 '정수 몫'을 미리 구해둡니다. (// 사용)
mid = len(s) // 2
if len(s) % 2 == 0:
# 짝수일 때: 중간 기준점에서 왼쪽 한 칸부터, 오른쪽 한 칸까지 (mid-1 부터 mid까지)
answer = s[mid-1 : mid+1]
else:
# 홀수일 때: 중간 기준점 한 글자만 가져옴
answer = s[mid : mid+1] # s[mid]로 써도 무방합니다.
return answer
- 파이썬 개인과제
레벨2
2-3
# 바로 plot() / figsize=(10,6)
fig, ax = plt.subplots(figsize=(10,6))
# 빈칸을 채워 코드를 완성하세요
# 선 그래프(Line Chart) 작성
plt.plot(date_sum['Date'],date_sum['Production'], label='Production') # 예시
plt.plot(date_sum['Date'], date_sum['Defects'], label='Defects') # 예시
plt.title("Daily Trends : Production and Defects")
plt.xlabel("Date")
plt.ylabel("Count")
plt.legend() #범례 표시
plt.grid(True)
plt.show()
실수
# 날짜별 집계
df['Date']=pd.to_datetime(df['Date'])
date_sum = df.groupby("Date").agg({
'Production':'sum',
'Defects':'sum'
}).reset_index()
date_sum=date_sum.sort_values('Date')
1. 날짜별 집계에서 Date칼럼 datetime으로 안바꿈
2. agg 잘못 씀(문제 이해 잘못해서 Date도 sum 함
3. 이상치 처리 했는데 마지막에 그래프 돌릴때 런타임 리셋되고 다시 실행 안해서 그래프 이상하게 나옴...
레벨3
3-1
df = df.drop_duplicates(subset=['production'])
production 열 기준 -> subset !!
# 히스토그램 시각화
plt.figure(figsize=(8, 6))
# Production Histogram
plt.hist( data_cleaned['production'] , bins=10, edgecolor='k', alpha=0.7)
plt.xlabel('Production')
plt.ylabel('Frequency')
plt.title('Production Distribution')
plt.show()
# 분석가의 해석
# 여기에 해석을 입력하세요 (예: 생산량은 대체로 XX~YY 구간에 분포한다.)
계속 히스토그램이 이상하게 bar가 많이 나와서 세션 자료 보면서 수정했더니 됨
(data_cleaned['production]<<<<컬럼을 붙여야 내가 보려는 데이터만 나옴)
'내일배움캠프(본캠프)' 카테고리의 다른 글
| [내일배움캠프] 본캠프 4/2 (0) | 2026.04.02 |
|---|---|
| [내일배움캠프] 본캠프 4/1 (0) | 2026.04.01 |
| [내일배움캠프] 본캠프 3/30 (0) | 2026.03.30 |
| [내일배움캠프] 본캠프 3/27 (0) | 2026.03.27 |
| [내일배움캠프] 본캠프 3/26 (1) | 2026.03.26 |