티스토리 뷰
SQL 코드카타
Q41. 조건에 맞는 도서 리스트 출력하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/144853
2. 정답 코드:
SELECT
BOOK_ID,
SUBSTR(PUBLISHED_DATE, 1, 10) AS PUBLISHED_DATE
FROM BOOK
WHERE SUBSTR(PUBLISHED_DATE, 1, 4) = '2021'
AND CATEGORY = '인문'
ORDER BY PUBLISHED_DATE ASC;
Q42. 평균 일일 대여 요금 구하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/151136
2. 정답 코드:
SELECT
ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
Q43. 조건에 맞는 사용자와 총 거래금액 조회하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/164668
2. 정답 코드:
SELECT
u.USER_ID,
u.NICKNAME,
SUM(b.PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD AS b
JOIN USED_GOODS_USER AS u
ON b.WRITER_ID = u.USER_ID
AND b.STATUS = 'DONE'
GROUP BY u.USER_ID
HAVING SUM(b.PRICE) >= 700000
ORDER BY TOTAL_SALES ASC;
Q44. 가격대 별 상품 개수 구하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131530
2. 정답 코드:
SELECT
(PRICE DIV 10000) * 10000 AS PRICE_GROUP,
COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP ASC;
3. 오류 상황: 결과 화면에서 PRICE_GROUP이 0에 해당되는 데이터의 수가 많고, 0이라고 표시가 안됨
4. 시도 방법: RAW DATA를 확인해서 PRICE 구간을 재확인함
5. 최종 문제 해결 방법: 40000원 이상인 데이터들은 처리가 제대로 되지 않아 0 구간의 숫자가 이상하게 표시된 것이었음
→ DIV 함수를 사용해야 함! DIV는 나눗셈의 몫만 구하는 함수 ex. 15000 DIV 10000 = 1
SELECT
CASE
WHEN PRICE >= 0 AND PRICE < 10000 THEN 0
WHEN PRICE < 20000 THEN 10000
WHEN PRICE < 30000 THEN 20000
WHEN PRICE < 40000 THEN 30000
END AS PRICE_GROUP,
COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP ASC;
# 오류 쿼리 : CASE WHEN 문으로 모두 커버 불가능

Q45. 3월에 태어난 여성 회원 목록 출력하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131120
2. 정답 코드:
SELECT
MEMBER_ID,
MEMBER_NAME,
GENDER,
SUBSTR(DATE_OF_BIRTH, 1 ,10) AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE SUBSTR(DATE_OF_BIRTH, 6, 2) = '03'
AND GENDER = 'W'
AND TLNO IS NOT NULL
ORDER BY MEMBER_ID ASC;
라이브 세션) Python 기초 강의 1일차 - 수업날 [입출력, 변수, 문자열]
1) 입출력
- 엔터 = '\n' 또는 '₩n'
print(f"... {변수} ...") - 변수 출력 형태 지정
money = 1234567
print(f"가격은 {money:,}원입니다.")
가격은 1,234,567원입니다.
pi = 3.141592
print(f"원주율은 {pi:.2f}입니다.")
원주율은 3.14입니다.
문장에 중괄호를 진짜로 출력하고 싶으면 {{ }} 처럼 두 번 써야 함!
ex. {중괄호} 이렇게 출력하고 싶으면 {{중괄호}} 이렇게 입력
1e3 = 1000.0 (10^3)
01. 미니 프로젝트: "안전한 계산기" 만들기
목표
사용자가 두 수를 입력하면 아래를 출력합니다.
- 합, 차, 곱, 나눗셈(실수)
- 입력이 이상하면 친절한 안내를 출력하고 끝내기
- 0으로 나누면 멈추지 않게 처리하기
입력 형식
아래 중 어떤 형식이든 받도록 해 봅시다(가능하면):
- 10 3 (공백)
- 10,3 (쉼표)
- 10#3 (#)
힌트:
- 입력 문자열에 ,가 있으면 split(',')
- 아니면 #가 있으면 split('#')
- 아니면 split() (공백)
아래 코드를 완성해 보세요.
s = input("두 수를 입력하세요 (예: 10 3 / 10,3 / 10#3): ")
try:
# TODO: 구분자 선택
if ',' in s:
s2 = s.split(',')
elif '#' in s:
s2 = s.split('#')
else:
s2 = s.split()
# TODO: 숫자 변환(필요하면 strip, replace 등)
a, b = map(int, s2)
# TODO: 합/차/곱/나눗셈 출력
print(f'합: {a + b}')
print(f'차: {a - b}')
print(f'곱: {a * b}')
print(f'나눗셈: {a / b}')
# TODO: ValueError, ZeroDivisionError 처리
except ValueError:
print("입력 형식이 잘못되었습니다! (예: 10 3 / 10,3 / 10#3)")
except ZeroDivisionError:
print("0으로는 나눌 수 없습니다!")

2) 변수
- 하이닉스 - 변수
- 10000 - 값
- 변수 이름은 숫자로 시작하면 안됨, 중간에 공백 불가
변수 타입
- integer : int 정수형
- float : flt 실수형(.소수점 있는 숫자)
- string : str 문자열형 (””로 둘러싸임)
02. 미니 프로젝트: "용돈 계산기" (변수 총정리)
아래 셀을 완성해 보세요.
# TODO: 값은 자유롭게 바꿔도 됩니다.
allowance = 50000
snack = 12000
transport = 15000
game = 8000
# TODO 1: 총 지출 계산
total_spent = snack + transport + game
# TODO 2: 남은 돈 계산
remaining = allowance - total_spent
print('총 지출한 돈 =', total_spent)
print('남은 돈 =', remaining)

3) 문자열
x="abcdef"
print(x[0:3]) #0번째(포함O)~3번째(포함X) #abc
print(x[:3]) #0번째(포함O)~3번째(포함X) #abc
print(x[1:]) #1번째(포함O)~마지막까지 #bcdef
x[-1] = "f" #마지막 글자
x[-2] = "e" #뒤에서 두 번째
s = "abcdefg" #[start:end:step]
print("[::-1] 뒤집기:", s[::-1])
-----------------------------------------------
[::-1] 뒤집기: gfedcba
문자열[start : end : step]
x = "abcdefghijklmnop"
print(x[0:-1:2])
-----------------------------------------------
acegikmo
- 뒤에서 두칸씩의 시작 점은 마지막 글자인 n부터!

- ₩t (탭키) 가 여러개 있더라도 제거됨

- 가운데에 있는 공백은 strip으로 지울 수 없음!

- split은 리스트 [ 'a', 'b', 'c' ] 이런 형태
- join은 문자열 'a/b/c' 이런 형태

- 리스트로 join 하려고 하면 문자열이 아니기 때문에 오류가 발생한다! → 리스트를 str으로 바꿔서 join

- H가 0번째이므로, 공백까지 포함했을 때 P는 6번째

03. 미니 프로젝트: "문장 정리기" 만들기
목표
사용자에게 문장을 입력받아, 아래를 출력하는 프로그램을 만드세요.
- 양쪽 공백 제거(앞뒤)
- 모두 소문자로 바꾸기
- 쉼표 ,를 공백으로 바꾸기
아래 셀을 완성해 보세요.
text = input("문장을 입력하세요: ")
# TODO 1: 공백 제거
text1 = text.strip()
print("공백 제거: ", text1)
# TODO 2: 소문자 변환
text2 = text1.lower()
print("소문자 변환: ", text2)
# TODO 3: 쉼표를 공백으로 바꾸기
text3 = text2.replace(",", "")
print("쉼표를 공백으로 바꾸기: ", text3)

Python 강의를 처음 들었는데, 짧은 기간 안에 많은 내용을 학습해야 하는 만큼 분량이 상당히 많게 느껴졌다. 이전에 Python을 얕게나마 공부한 경험이 있음에도 불구하고, 이해가 잘 되지 않는 부분들도 있었다.
라이브 세션만으로는 부족할 수 있을 것 같아, 녹화 강의를 함께 활용하며 내용을 놓치지 않도록 꾸준히 예/복습해야겠다는 생각이 들었다. 또한 Python 학습과 병행해 SQL 코드카타도 꾸준히 챙기며 기본기를 다져야겠다고 느꼈다.
'내일배움캠프 데이터 분석' 카테고리의 다른 글
| 11일차) 내일배움캠프 데이터 분석 TIL - 파이썬 기초(3) (1) | 2026.01.07 |
|---|---|
| 10일차) 내일배움캠프 데이터 분석 TIL - 파이썬 기초(2) (0) | 2026.01.06 |
| 260104) 주말 SQL 코드카타 (0) | 2026.01.04 |
| 8일차) 내일배움캠프 데이터 분석 TIL - SQL 기초(8) (1) | 2026.01.02 |
| 7일차) 내일배움캠프 데이터 분석 TIL - SQL 기초(7) (1) | 2025.12.31 |
- Total
- Today
- Yesterday
- 구글코랩
- 통계
- 태블로
- 파이썬
- GoogleColab
- 프로그래밍입문
- Til
- 코드카타
- git
- 텍스트분석
- Tableau
- 파이썬입문
- 중학생코딩
- github
- 데이터시각화
- Python
- 내일배움캠프
- SQL
- 머신러닝
- 비전공자코딩
- 데이터분석
- 코딩처음
- 판다스
- 코딩기초
- 데이터분석입문
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
