티스토리 뷰
SQL 코드카타
Q79. 595. Big Countries
1. 문제 링크: https://leetcode.com/problems/big-countries/description/
2. 정답 코드:
SELECT
name,
population,
area
FROM World
WHERE area >= 3000000 or population >= 25000000
ORDER BY name;

Q80. 1148. Article Views I
1. 문제 링크: https://leetcode.com/problems/article-views-i/description/
2. 정답 코드:
SELECT DISTINCT author_id as id
FROM Views
WHERE author_id = viewer_id
ORDER BY author_id;

Q81. 1683. Invalid Tweets
1. 문제 링크: https://leetcode.com/problems/invalid-tweets/
2. 정답 코드:
SELECT tweet_id
FROM Tweets
WHERE length(content) > 15
ORDER BY tweet_id;
3. 오류 상황: 함수 오류 및 일부 행에서 원하는 결과값이 나오지 않음
4. 시도 방법: 함수 제대로 사용했는지 확인, 초과/이상 조건 확인
5. 최종 문제 해결 방법: len → length 함수 사용, 초과로 조건 변경해서 실행
원래 len 함수도 사용 가능한 것으로 알고 있었는데, 오류가 발생해서 찾아보니 일부 DBMS에서는 length라는 이름으로 사용된다고 한다! 오류가 났을 때 참고해야 겠다.

Q91. 620. Not Boring Movies
1. 문제 링크: https://leetcode.com/problems/not-boring-movies/
2. 정답 코드:
SELECT *
FROM Cinema
WHERE id % 2 = 1 AND description <> 'boring'
ORDER BY rating DESC;

Q108. 610. Triangle Judgement
1. 문제 링크: https://leetcode.com/problems/triangle-judgement/
2. 정답 코드:
SELECT
x,
y,
z,
CASE
WHEN x+y>z AND y+z>x AND x+z>y THEN 'Yes'
ELSE 'No'
END AS triangle
FROM Triangle

# 이렇게 간단히도 할 수 있음!
SELECT *, IF(x+y>z and y+z>x and z+x>y, "Yes", "No") as triangle FROM Triangle
Python 코드카타 (https://github.com/heeso0908/codekata.git)
Q6. 두 수의 합 구하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120802
2. 정답 코드:
def solution(num1, num2):
answer = num1 + num2
return answer
Q7. 두 수의 나눗셈
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120806
2. 정답 코드:
def solution(num1, num2):
answer = int(num1 / num2 * 1000)
return answer
Q8. 각도기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120829
2. 정답 코드:
def solution(angle):
if angle >0 and angle < 90 :
answer = 1
elif angle == 90 :
answer = 2
elif angle > 90 and angle < 180 :
answer = 3
elif angle == 180 :
answer = 4
return answer
Q9. 짝수의 합
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120831
2. 정답 코드:
def solution(n):
answer = 0
for i in range(2, n+1, 2) :
answer += i
return answer
3. 오류 상황: for 문에서 구간 설정 오류 발생
4. 시도 방법: [:n+1:2]로 했었는데, 방법 변경
5. 최종 문제 해결 방법: range(2, n+1, 2)로 변경하고 answer도 for 문 내부에서 += i를 해주기 위해 맨 처음에 answer = 0 로 초기값을 설정해 줌
Q10. 배열의 평균값
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120817
2. 정답 코드:
def solution(numbers):
answer = sum(numbers) / len(numbers)
return answer
라이브 세션) Python 기초 강의 9일차 - 수업날 [클래스, 파일] & 미니 세션
클래스를 인스턴스화 해서 객체를 만들거다! = 클래스로 객체 만드는 과정이 인스턴스화!
클래스 = 붕어빵 틀
객체(인스턴스) = 붕어빵
클래스 안에 있는 함수 = 메서드!
우리가 평소에 사용하던 list() 이런 함수도 list가 사실은 클래스였고,
append()는 메서드,,
클래스에서 메서드 중 __iter__가 있어야 함!! (여기서 iter는 iterable : 반복 가능)
str, list, dict : 내부에 __iter__가 구현되어 있어 for 문에서 구간 반복 가능
int, float : 내부에 __iter__가 없어서 for i in 10: 이라고 쓰면 "int object is not iterable"이라는 에러 발생!
근데 self는 왜 있을까?
클래스 안에서 def 해서 메서드 만들 때 self는 무조건 넣어야 한다고 우선 생각! (예외 경우도 있지만,, 아직은,,!)
클래스 안의 많은 객체들을 어쨌든 구분을 해야할테니까 객체 각각을 구분하기 위해서 self로 만들어 줘야 함!
def __init__(self, name, age) :
여기서 __init__ 은 매직 메서드 중에서도 생성자 메서드 라고 부른다!
클래스 잘 사용하고 싶어! 하면 __init__ 내용 잘 보고 필요한거 입력해주면 된다!
Q. 매직 메서드가 뭐냐?
'매직 메서드(Magic Method)'는 이름처럼 파이썬이 특정한 상황에서 자동으로 호출해 주는 특별한 메서드를 말한다!
이름 앞뒤에 밑줄 두 개(__)가 붙어 있어서 '던더(Dunder - Double Under의 약자) 메서드'라고도 부르고, 우리가 직접 객체.메서드() 식으로 부르지 않아도, 파이썬 시스템이 알아서 불러주는 게 특징이다.
1. 왜 "매직"일까? (작동 원리)
우리가 평소에 하는 당연한 행동들 뒤에는 사실 매직 메서드가 숨어 있다.
- 더하기(+)를 할 때: 1 + 1을 하면 파이썬 내부에서는 (1).__add__(1)이 실행
- 길이(len)를 잴 때: len(my_list)를 하면 내부적으로 my_list.__len__()이 호출됨
- 출력(print)을 할 때: print(obj)를 하면 객체의 내용을 보여주기 위해 obj.__str__()이 호출됨
즉, 평범한 기호나 함수가 클래스 객체와 만났을 때 어떻게 행동할지 정의해 놓은 약속이라고 보면 된다.
2. 자주 쓰는 주요 매직 메서드
| 매직 메서드 | 호출되는 시점 | 역할 |
| __init__ | Bread() 처럼 객체를 만들 때 | 생성자: 객체 초기 설정 |
| __str__ | print()로 객체를 출력할 때 | 설명: 객체를 문자열로 어떻게 보여줄지 결정 |
| __len__ | len(객체)를 사용할 때 | 길이: 객체의 길이나 개수를 반환 |
| __iter__ | for x in 객체: 를 실행할 때 | 반복: 반복 가능한(iterable) 객체로 만듦 |
| __getitem__ | 객체[index] 처럼 인덱싱할 때 | 조회: 대괄호로 값을 가져올 때 동작 |
3. 실생활 비유: 스마트폰의 버튼
스마트폰의 '전원 버튼'을 생각해보자!
- 우리가 버튼을 누르는 건 + 기호를 쓰는 것과 같다.
- 하지만 기계 내부에서는 버튼이 눌렸을 때 '화면을 켜라' 혹은 '종료 메뉴를 띄워라'라는 정해진 기능(__power__)이 작동됨
개발자는 이 매직 메서드를 클래스 안에 미리 정의해둠으로써, 사용자가 내 클래스를 사용할 때 +나 for문 같은 파이썬의 기본 기능을 그대로 쓸 수 있게 "마법"을 부려놓는 것!
붕어빵 구워보기 🐟🍞
class FishBread:
# 생성자: 붕어빵이 만들어질 때 속재료와 가격을 정함
def __init__(self, taste, price):
self.taste = taste # self를 통해 '이 객체'의 속성 저장
self.price = price
# 메서드: 붕어빵의 기능
def describe(self):
print(f"이 붕어빵은 {self.taste}맛이고 가격은 {self.price}원입니다.")
# 인스턴스화
bean_bread = FishBread("팥", 1000)
cream_bread = FishBread("슈크림", 1200)
bean_bread.describe() # self가 bean_bread를 가리킴
오늘은 파이썬 기초 내용 중에서도 비교적 어려운 클래스를 배웠다!
어제 파이썬 종합반 강의에서 한 번 듣고, 오늘 오전 라이브 세션에서도 다시 들었지만 여전히 이해가 쉽지 않아 추가 미니 세션까지 수강했다. 여러 번 반복해서 듣다 보니 클래스가 무엇인지에 대한 감은 조금 잡힌 것 같아 한결 후련하다.
파이썬 자체가 클래스 기반으로 이루어진 언어라는 생각도 들었고, 아직 갈 길이 멀다는 것도 다시 한 번 느꼈다.
내일은 지금까지 배웠던 내용을 전체적으로 복습하고, 금요일에 진행될 전처리 & 시각화 세션을 대비해 녹화 강의로 미리 예습을 해둬야겠다.
'내일배움캠프 데이터 분석' 카테고리의 다른 글
| 18일차) 내일배움캠프 데이터 분석 TIL - 파이썬 전처리/시각화(1) (0) | 2026.01.16 |
|---|---|
| 17일차) 내일배움캠프 데이터 분석 TIL - 파이썬 기초(9) (0) | 2026.01.15 |
| 15일차) 내일배움캠프 데이터 분석 TIL - 파이썬 기초(7) (0) | 2026.01.13 |
| 14일차) 내일배움캠프 데이터 분석 TIL - 파이썬 기초(6) (1) | 2026.01.12 |
| 260110~11) 주말 파이썬 기초 문제 풀이 + SQL 코드카타 (0) | 2026.01.11 |
- Total
- Today
- Yesterday
- 데이터분석입문
- github
- 코딩처음
- 통계
- 파이썬입문
- 태블로
- 내일배움캠프
- Python
- 텍스트분석
- 머신러닝
- Til
- 파이썬
- 판다스
- Tableau
- 프로그래밍입문
- 데이터시각화
- 코드카타
- GoogleColab
- SQL
- 구글코랩
- 데이터분석
- 코딩기초
- 중학생코딩
- 비전공자코딩
- git
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
