Today I Learned

[내일배움캠프 QA/QC 6기] TIL #020

JiJi0406 2026. 6. 9. 21:28

001

오늘의 코드카타

29. 제일 작은 수 제거하기

 

문제 설명

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

 

제한사항

  • arr은 길이 1 이상인 배열입니다.
  • 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

 

입출력 예

numbers result
[4,3,2,1] [4,3,2]
[10] [-1]

 

 

내가 푼 방법 👇👇👇

더보기
def solution(arr):
    if len(arr) >= 2: 
        arr.remove(min(arr)) # min으로 최소값 골라내고 remove로 제거
        return arr

    if len(arr) <= 1: # arr에 값이 하나밖에 없음 = 최소값 제거하면 빈 배열 됨
        return [-1]

 

프로그래머스에 질문 개수 보니까 꽤 까다로운 문제였던 거 같은데 어떻게 한번에 통과..함

그래서 ai한테 코드 첨삭 받았는데

 

 

 

제 코드에서 조금 더 간소화된 버전이면 제일 좋은 답이라고 평가할 것 같다고 하네요

결론은 내가 짠 코드도 나쁘지 않다.

 

이 기세를 몰아 하나 더 풀었다.

 

30. 가운데 글자 가져오기

 

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

 

제한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

 

입출력 예

s return
"abcde" "c"
"qwer" "we"

 

 

내가 푼 방법 👇👇👇

더보기
def solution(s):
    if len(s) % 2 == 1: # len(s)가 홀수일 때 조건
        return s[len(s) // 2] # //로 나눈 값의 몫만! /만 하면 몫에 나머지도 반영돼서 몫이 실수가 됨
    return s[len(s) // 2 - 1] + s[len(s) // 2] # len(s)가 짝수일 때 반환값

 

이 문제도 어렵지 않게 통과

 

지피티님 칭찬 감사합니다. 근데 초보자 예시도 나 같음...

 

 


 

002

기초 프로젝트 : 2일차

 

1. 공정유형별 주요 환경 인자 위험도 추세 분석 및 임계점 도출

 

공정유형별로 위험도에 영향을 주는 상위 2개 인자를 선정해 산점도 + 선형 회귀 추세선으로 시각화했다.

이런 느낌으로...

 

그래프에 두 가지 기준선(주의 단계, 임계점)을 함께 표시해서 분석의 객관성을 높였다.

임계점 계산 방식은 회귀 방정식 y = ax + b를 역산한 것이다.

 

<접근법의 의의>

  1. 역산 추정: 기존엔 가스 농도 → 위험도를 예측하는 방향이었다면, 이번엔 반대로 주의선(검정색 점선)을 먼저 정하고 그에 해당하는 원인 변수의 마지노선을 수학적으로 구함
  2. 결정 경계: 이 임계 수치를 기점으로 데이터가 '안전 구역'에서 '주의 구역'으로 전환됨을 통계적으로 의미함
  3. 선행 지표 수치화: 종합 위험도 대신 가스 센서만으로 상시 모니터링 가능한 1차원적 경보 수치를 제공

 

2. 위험도 단계별 주요 변수 분포 비교 및 가설 검증

위험도 단계를 Q1과 Q3값을 기준으로 '안전 / 보통 / 주의' 3단계로 범주화한 뒤, 주요 변수(CO, H₂, 온도, 습도)의 분포를 바이올린 플롯으로 분석했다. 표본 수가 많지 않아 세부 공정별로 쪼개면 통계적 왜곡이 생길 수 있어서, 이 단계에서는 공정을 통합해 거시적 추세를 먼저 파악했다.

 

 

1) 온도-위험도 역방향 패턴 발견 및 가설 수립

분석 중 직관과 완전히 반대되는 패턴을 포착했다. 위험도가 가장 높은 '주의' 단계에서 오히려 온도가 낮은 쪽에 분포가 높은 모습이 보인 것. 그래서 

→ 가설: "설비 내부의 온도 저하가 위험도를 끌어올리는 보조 요인으로 작용할 것이다"

 

2) 가설 검증 — [온도 × CO × 위험단계] 다변량 산점도

온도의 음의 상관관계가 살아있는 절단·주조 공정 데이터를 통합해 시각화한 결과

온도 700도 미만 CO 농도 14ppm 이상으로 급증 + '주의(빨간 점)' 집중(...?이라기엔 너무 적지만) → 가설 시각적으로 증명
온도 800도 부근 주의 인자 일부 관측되나 안전/보통 단계 데이터도 공존 → 고온 자체보다 설비 과열 등 독립적 리스크일 가능성
온도 725~825도 안전/보통 단계에 데이터 밀집 

 

 

3. 불완전 연소와 CO 발생 메커니즘 정리

 

- 불완전 연소: 물질이 연소할 때 산소의 공급이 불충분하거나 온도가 낮으면 완전히 연소되지 못하고 일산화탄소가 생성되는 현상이다.

 

절단/주조 공정은 750~800도 이상의 고온을 유지해야 연료가 완전 연소되어 이산화탄소로 변환된다. 700도 미만으로 떨어지면 화학 반응 에너지가 부족해져 불완전 연소가 발생하고, 그 결과로 유독가스인 CO가 대량 방출되는 것이지 않을까 해석해보았다.

 

  인사이트: 안전 매뉴얼 기획 시 가스 농도뿐만 아니라 설비 온도 저하 징후 또한 선행 관리 지표로 포함해야 한다.