001
오늘의 코드카타
(28) 프로그래머스 코테 > 월간 코드 챌린지 시즌3 > 없는 숫자 더하기
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
입출력 예
| numbers | result |
| [1,2,3,4,6,7,8,0] | 14 |
| [5,8,4,0,6,7,9] | 6 |
▼ 1차
def solution(numbers):
answer = []
for i in range(0,10):
if i not in numbers:
answer.append(i)
return sum(answer)
▼ 2차 (리스트 컴프리헨션 기법 적용)
def solution(numbers):
return sum([(i) for i in range(0,10) if i not in numbers])
큰 어려움 없이 잘 풀었다~!
002
기초 프로젝트 : 1일차
1. 프로젝트의 시작
3주 전 프로그래밍 기초를 배우며 데이터 분석이라는 것에 첫발을 내디게 되었고, 이후 데이터 전처리와 다양한 시각화 기법을 배우며 내공을 쌓는 시간을 거쳤다.
그리고 마침내, 그동안 배웠던 내용들을 활용해 처음으로 결과물을 만들어낼 '기초 프로젝트' 주차에 들어섰다!
그동안 갈고닦은 기본기를 바탕으로 팀원들과 힘을 합쳐 최고의 아웃풋을 내보자!! 화이티잉 💪
2. 오늘 한 일
- 주제 선정 : [산업 안전 / 제조] 가스 센서 기반 위험도 예측
- 기획서 작성
- 각자 데이터 분석하고 인사이트 뽑아내기
1) 데이터 분석의 첫 단계: 데이터 이해와 전처리
- 작업 내용: 데이터셋의 구조를 파악하고 결측치와 이상치존재 여부를 체크
- 확인 결과 : df.isnull().sum()으로 결측치 개수 확인 → 결측치 없음 / 이상치 확인을 위해 boxplot 생성(IQR 적용) 후 확인 → 이상치 없음
- 판단: 데이터 상태가 양호하여 행을 삭제 or 대치하는 전처리 과정생략
2) 이상치가 없을 때의 기준 재설정
이번 프로젝트의 궁극적인 목표는 산업현장의 위험 요인을 선제적으로 감지하는 것
비록 통계학적 기법(IQR 등)으로는 이상치가 발견되지 않았지만, 실제 안전관리 실무 관점에서는"이 수치를 넘어가면 위험하다"고 판단할 기준을 세우지 않을까? 싶어서 위험도의 구간을 나누고, 고위험군에 해당하는 데이터들은 추후에 확인하기로 했다.
Q3_risk = df['위험도'].quantile(0.75)
▲ 위험도 데이터의 Boxplot 사분위수 기준 상위 25% 지점(Q3)을 계산하여 통계적으로 신뢰할 수 있는 고위험군 경계선을 추출
3. 공정별 환경 변수와 위험도의 상관관계 분석
처음엔 아무 생각 없이 데이터를 분류하지 않고 통째로 상관분석을 진행했다.
그러던 중 공정 단계별로 작업 환경과 다루는 물질이 완전히 다르기 때문에, 전체 데이터를 하나로 퉁쳐서 분석하면 공정별 고유 특성이 묻히는 '심슨의 역설' 오류가 발생할 수 있다는 점을 깨닫고 공정별로 다시 히트맵을 제작했다.

- 개선 방향: 데이터를 공정별로 완전히 분리한 뒤 상관분석을 진행
- 시각화의 효율성 극대화: 공정별로 7x7 형태의 복잡하고 중복된 정보가 많은 일반 히트맵을 3개 만드니 너무 어지러움... 대신, 오직 각 환경 인자 - 위험도 간의 관계만 쏙 뽑아낸 '1줄짜리 요약 매트릭스'를 구축하고, 공정별로 나온 히트맵을 다 합쳐 한 장의 통합 히트맵으로 시각화
- 배운 점: 불필요한 노이즈 칸을 다 쳐내고 핵심만 압축하니 어떤 공정에서 어떤 칸이 찐한지(위험한지) 한눈에 매핑됨! 수치만 볼 때보다 시각화를 목적에 맞게 재구조화했을 때 패턴 파악 속도가 압도적으로 빨라진다는 것을 체감했다. 😁

4. 상관관계가 높은 변수의 산점도 추가 분석
통합 상관관계 분석 결과, 공정별로 위험도와 가장 강력하게 밀착되어 움직이는 변수를 포착함. (어떤 건지는 비밀~)
- 시각화: 그 변수를 픽해서 산점도와 회귀선을 그리고, 그 위에 앞서 구한 고위험 기준선을 추가했다.
- 분석 결과: 해당 변수의 농도가 증가할수록 위험도가 선형으로 치솟는 경향을 눈으로 확인했기 때문에, 향후 위험도를 선제 예측하는 핵심 인자로 활용 가능성이 매우 높을 것으로 추정된다.
💡 오늘 배운 점
- 데이터 전처리의 유연성: "결측치와 이상치가 없으면 전처리할 게 없다"고 단정짓지 말기! 프로젝트 목적에 맞게 데이터의 새로운 기준(임계치)을 정의하고 재분류하는 것 또한 데이터 분석에 있어 필요한 과정이다.
- 시각화는 목적 지향적이어야 한다: 남들이 다 그리니까 기계적으로 그리는 7x7 히트맵은 불필요한 정보들을 포함해서 오히려 독이 될 수 있음. 내가 보고 싶은 '위험도와의 관계'만 1줄로 추려 한 장으로 합친 것처럼, 전달하려는 메시지에 맞춰 시각화의 구조를 깎고 다듬는 역량 또한 앞으로 키워나가야겠다는 생각을 했다.
'Today I Learned' 카테고리의 다른 글
| [내일배움캠프 QA/QC 6기] TIL #021 (0) | 2026.06.10 |
|---|---|
| [내일배움캠프 QA/QC 6기] TIL #020 (0) | 2026.06.09 |
| [내일배움캠프 QA/QC 6기] TIL #018 (0) | 2026.06.05 |
| [내일배움캠프 QA/QC 6기] TIL #017 직접 해보기 (0) | 2026.06.04 |
| [내일배움캠프 QA/QC 6기] TIL #016 ✨데이터 시각화 (with Matplotlib)✨ (1) | 2026.06.02 |