TIL(Today I Learned)
1️⃣SQL 강의 3,4주차 수강
- 데이터 가공하기
- 데이터 포맷 변경, 그룹화 등 원하는 형태로 데이터를 변경 및 추출 - 실습문제: 배달시간이 늦었는지 판단하는 값을 만들기,
[조건]
주중 : 25분 이상
주말 : 30분 이상
그림 1: 제공받은 데이터를 통해 컬럼에 따른 다양한 요소를 확인할 수 있다. - 문항분석: case when 형식을 통해 주중, 주말에 따른 배달 시간을 비교하면 문제에 대한 답을 출력할 수 있을 것이다
select order_id,
restaurant_name,
day_of_the_week,
delivery_time,
case when delivery_time >= 25 then if(day_of_the_week = 'weekday','Late','On_time')
when delivery_time >= 30 then if(day_of_the_week = 'weekend','Late','On_time')
else 'On_time' end '지연여부'
from food_orders

- 수정방안: 코드를 보면 case의 각 when 별로 if문을 통해 예외처리를 하였는데, case문의 else를 통합적으로 예외처리를 하는 것이 간결한 코드가 될 것 같습니다.
2️⃣Python 문법 문제풀이
문제: 배열과 쿼리 처리
정수 배열 arr와 2차원 정수 배열 queries가 주어집니다. 각 queries의 원소는 [s, e, k] 형태이며, 아래 규칙을 수행합니다:
- s ≤ i ≤ e 인 모든 i에 대해, i가 k의 배수이면
arr[i]에 1을 더합니다.
쿼리를 순서대로 처리한 뒤의 arr를 반환하는 solution 함수를 작성하세요.
제한 사항
- 1 ≤ arr의 길이 ≤ 1,000
- 0 ≤ arr의 원소 ≤ 1,000,000
- 1 ≤ queries의 길이 ≤ 1,000
- 0 ≤ s ≤ e < arr의 길이
- 0 ≤ k ≤ 5
입출력 예
| arr | queries | result |
|---|---|---|
| [0, 1, 2, 4, 3] | [[0, 4, 1],[0, 3, 2],[0, 3, 3]] | [3, 2, 4, 6, 4] |
설명: 각 쿼리 처리 후 배열 변화
[0, 1, 2, 4, 3]
[1, 2, 3, 5, 4] # 첫 번째 쿼리 [0,4,1]
[2, 2, 4, 5, 4] # 두 번째 쿼리 [0,3,2]
[3, 2, 4, 6, 4] # 세 번째 쿼리 [0,3,3]
올바른 파이썬 코드
def solution(arr, queries):
for s, e, k in queries:
if k == 0: # k가 0이면 나눗셈 불가
continue
for i in range(s, e+1):
if i % k == 0: # i가 k의 배수이면
arr[i] += 1
return arr
# 예시 실행
arr = [0, 1, 2, 4, 3]
queries = [[0, 4, 1],[0, 3, 2],[0, 3, 3]]
print(solution(arr, queries)) # [3, 2, 4, 6, 4]
핵심 포인트
- i가 k의 배수인지 확인:
i % k == 0 - k가 0이면 나눗셈 불가 →
continue - 쿼리를 순서대로 처리해야 결과가 정확
💡 느낀점
- SQL 강의를 수강하며 Python을 통해 진행했던 조건문 등의 다양한 문법을 실제 데이터에 적용하여 결과물이 출력되는 것을 보고 능숙하게 SQL을 다루는 것이 중요할 것 같다고 느꼈습니다. 또한, SQLD와 같은 자격증을 갖춘다면 더욱 큰 강점이 될 것 같습니다.
'온보딩 주차' 카테고리의 다른 글
| Chapter.0 온보딩 주차(6) (0) | 2026.03.24 |
|---|---|
| Chapter.0 온보딩 주차(4) (0) | 2026.03.24 |
| Chapter.0 온보딩 주차(3) (0) | 2026.03.24 |
| Chapter.0 온보딩 주차(2) (1) | 2026.03.24 |
| Chapter.0 온보딩 주차 (1) (0) | 2026.03.24 |