✅ 오늘 한 것
Library 개인 과제(Level 2.), 알고리즘 문제 풀이
✏️ 오늘 배운 점
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
df = pd.read_csv('C:\Python_Code\practice\manufacturing_data_400.csv')
# Boxplot 작성
plt.figure(figsize=(10, 6))
sns.boxplot(x='Line', y='Temperature', data=df) # x='Line', y='Temperature', data=df
plt.title('Temperature Distribution by Line') # 'Temperature Distribution by Line'
plt.xlabel('Production Line') # 'Production Line'
plt.ylabel('Temperature') # 'Temperature'
plt.grid(True)
# 그래프 표시
plt.show()

Matplotlib으로도 시각화를 진행할 수 있기에 Seaborn을 왜 사용하나 싶었지만 seaborn이 matplotlib을 기반으로 더 고도화된 그래프 시각화가 가능하다는 것을 알게 될 수 있는 코드 작성 예시였다.
# 라이브러리 불러오기
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('C:\Python_Code\practice\manufacturing_data_400.csv')
# Violinplot 작성
plt.figure(figsize=(10, 6))
sns.violinplot(x='Line', y='Temperature', data=df)
plt.title('Temperature Distribution & Density by Line')
plt.xlabel('Production Line')
plt.ylabel('Temperature')
plt.grid(True)
# 그래프 표시
plt.show()

이 코드 작성 예시 또한, Boxplot과 함께 VioloinPlot을 확인해볼 수 있었다.
select b.ingredient_type,
sum(a.total_order) as total_order
from first_half a join icecream_info b on a.flavor = b.flavor
group by b.ingredient_type
order by total_order asc;
group by로 원하고자 하는 목표를 채울 수 있는 그룹을 묶고 이후 그룹 별 총 판매량을 구하기 위해 sum()으로 처리하여 아이스크림의 성분과 각 성분이 사용된 아이스크림 별로 전체 판매량을 볼 수 있도록 코드를 작성하였다.
select animal_id,
name,
sex_upon_intake
from animal_ins
where name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty');
이름이 괄호 안에 속해 있는 이름 중 하나인 것들만 찾는 코드를 작성할 수 있었다. 이 문제는 왜 레벨 3에 속해있는 문제인지 모르겠을 수준의 문제라고 생각이 들었다.
n, m = map(int, input().strip().split(' '))
for i in range(m):
print(n * '*')
처음에는 \n을 활용해서 줄바꿈을 진행하는 코드를 작성해야 결과가 나오나 생각해서 코드 작성이 오래 걸렸다. print로 '*'를 묶어주면 반복문 1번당 줄바꿈이 진행되어 결국 문제에서 원하는 조건을 만족하는 코드가 생성되었다.
def solution(storage, usage, change):
total_usage = 0
for i in range(len(change)):
usage = total_usage * change[i]/100
total_usage += usage
if total_usage > storage:
return i
return -1
코드가 올바르게 작동하도록 한 줄을 수정해 solution 함수를 완성해 주세요. 가뭄이 끝날때 까지 저수지의 물이 남아 있다면 -1을 return합니다.
1차 시도 – 누적값 동기화로 해결하려 함
- 수정 아이디어: total_usage = usage로 바꿔서 누적과 현재 사용량을 맞추면 돌아갈 것이라 판단했습니다.
- 결과: 일부 케이스는 통과하지만 전반적으로 실패.
2차 시도 – 변동률의 피연산자 교정
- 수정 아이디어: usage = usage * change[i] / 100 로 바꿔 usage에 곱하기 시작.
- 결과: 여전히 어긋남.
요구사항 재해석(핵심 깨달음)
- usage = usage + usage * change[i] / 100
✏️ 오늘의 핵심
Boxplot은 이상치를 확인하는 데 효과적이지만, 데이터 분포의 형태는 알기 어렵다. ViolinPlot은 형태(밀도)까지 함께 표현해주기에 데이터가 어디에 몰려있는지 더 직관적으로 확인이 가능하다.
📌추가로 해야할 점
Library 개인 과제 (Level 2. & Level 3.), 알고리즘 문제, Python 개인 과제 피드백 수용 및 재풀이
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_4주차(월)_TIL (0) | 2025.09.29 |
|---|---|
| 본캠프_3주차(일)_TIL (0) | 2025.09.26 |
| 본캠프_3주차(5일)_TIL (0) | 2025.09.25 |
| 본캠프_3주차(4일)_TIL (0) | 2025.09.25 |
| 본캠프_3주차(3일)_TIL (0) | 2025.09.24 |