전체 글 158

[프로그래머스/Python] 콜라츠 추측

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 재귀 global cnt cnt = 0 def solution(num): global cnt if cnt > 500: return -1 if num == 1: return cnt if num%2 == 0: cnt += 1 return solution(num//2) else: cnt += 1 return solution(num*3 + 1) 2. 반복문 def solution(num): c..

[Python] 힙

힙: 힙 속성을 만족하는 트리 힙 속성 1. 완전 이진 트리( 마지막 레벨 직전의 노드들은 다 채워져 있고, 마지막 레벨은 다 채워질 필요가 없더라도, 왼쪽부터 오른쪽으로 채워져 있어야 함) 2. 최대 힙 -> 부모 노드의 값이 자식 노드의 값보다 크거나 같아야 한다 최소 힙 -> 부모 노드의 값이 자식 노드의 값보다 작거나 같아야 한다 파이썬 라이브러리를 사용한 heap import heapq heapq는 최소 힙을 사용 heapq 메소드 시간 복잡도 heapq.heapify() O(N) heapq.heappush() O(logN) heapq.heappop() O(logN) heapq 메소드 1. heapq.heapify(리스트) 리스트를 힙 속성을 만족시키도록 만들어준다. arr = [1, 4, 5,..

Python 2024.02.05

[SQL] 조인(JOIN)

JOIN: 테이블 합치기 여러 번 조인 가능 1. 결합 연산: 테이블을 가로 방향으로 합친다 2. 집합 연산: 테이블을 세로 방향으로 합친다 1. 결합 연산: JOIN 1. EQUI JOIN, Non-EQUI JOIN 2. INNER JOIN 3. OUTER JOIN(LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN) 4. CROSS JOIN 두 테이블 간에 일치하는 것을 조인한다 SELECT * FROM [테이블1], [테이블2] WHERE [테이블1].[컬럼명] = [테이블2].[컬럼명] join 조건을 WHERE절에 쓴다. 등호(=)을 사용 join 조건이 등호(=)가 아닌 부등호를 사용 FROM..

카테고리 없음 2024.02.05

[SQL] 서브쿼리

MySQL로 진행합니다 서브쿼리란 SELECT문 안에 SELECT문을 사용하는 것 서브 쿼리는 괄호로 묶어준다 1. SELECT 절에 사용(스칼라 서브 쿼리) 2. FROM 절에 사용(인라인 뷰) 3. WHERE 절에 사용(일반 서브 쿼리) SELECT절에 서브쿼리( = 스칼라 서브쿼리) 단일 값을 리턴한다. product 테이블에서 product_name(상품 이름), star(별점)를 추출하고 서브쿼리로 avg_star(상품들의 평균 별점)을 추출한다 SELECT id, star, (SELECT AVG(star) FROM product) AS avg_star FROM product; FROM절에서 서브쿼리( = 인라인 뷰) 테이블이 리턴되는 서브쿼리를 사용할 때 이 테이블을 FROM절에서 사용할 수 ..

카테고리 없음 2024.02.04

[SQL] DML-SELECT

SQL문법코드를 마치면 반드시 세미콜론(;)을 써야한다줄바꿈과 개행이 자유롭기 때문에 가독성을 위해 줄바꿈과 개행을 사용한다가독성을 위해 예약어는 대문자를 사용한다  MySQL을 기준으로 작성했습니다SELECT문테이블에 입력된 데이터를 조회하기 위해 사용원하는 컬럼과 행을 조회할 수 있음 SELECT문 작성 순서SELECTFROMWHEREGROUP BYHAVINGORDER BYLIMIT SELECT문 해석 순서1. FROM(데이터베이스와 테이블 결정)2. WHERE(조건을 만족하는 row들만 추출)3. GROUP BY(row들을 그루핑. 그루핑 후 하나의 row는 하나의 그룹이 됨)4. HAVING(조건을 만족하는 그룹들만 추출)5. SELECT(조회)6. ORDER BY(정렬)7. LIMIT(일부 ro..

카테고리 없음 2024.02.01

웹 스크래핑으로 인기 급상승 동영상 데이터 저장하기

저는 유튜브 인기 급상승 동영상을 1시간마다 업데이트하여 50만회 이상인 동영상의 정보만 엑셀에 저장해보겠습니다! 필요 라이브러리를 임포트 #웹 스크래핑 from selenium import webdriver from bs4 import BeautifulSoup #엑셀 from openpyxl import Workbook, load_workbook import os import pandas as pd import datetime 엑셀 워크북 생성/불러오기 if not os.path.isfile("유튜브인기급상승동영상.xlsx"): #엑셀 워크북 생성 wb = Workbook(write_only=True) ws = wb.create_sheet('인기급상승동영상') #컬럼 정보 ws.append(['시간',..

Python 2024.01.22

[프로그래머스/Python] 베스트 앨범

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr genres: 음악 장르 plays: 재생 횟수 음악 장르를 key, 장르에 대한 전체 재생 횟수를 value로 딕셔너리를 만든다 def solution(genres, plays): answer = [] dic = {} #장르에 대해서 한 번 d = {} for i in range(len(genres)): d[genres[i]] = d.get(genres[i], 0) + plays[i..

[프로그래머스/Python] 기능개발

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 큐 사용 남은 퍼센트 리스트에 저장 def solution(progresses, speeds): answer = [] #몇 퍼센트 남았는지: 100-progresses percent = [100-i for i in progresses] 배포 가능 날짜 세기 percent : 남은 퍼센트 speeds : 하루에 끝낼 수 있는 퍼센트 percent // speeds 나머지가 있으면 +1 ,..

[프로그래머스/Python] 햄버거 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 2 3 1 순서가 되면 +1씩 해서 총 카운트 수를 리턴 1. 스택 사용 재료를 하나씩 스택에 넣다가 재료가 1이면 스택에 쌓인 3개를 본다 3개가 1 2 3이면 카운트 def solution(ingredient): #1 2 3 1 answer = 0 stk = [] for i in ingredient: if i == 1: if stk[-3:] == [1, 2, 3]: del stk[-..

Selenium 사용하여 웹 자동화하기3- 뉴스 기사 스크랩

1. IT 관련 기사를 스크래핑 네이버 IT 카페고리 뉴스 기사의 헤드라인 뉴스를 뽑는다 https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105 IT/과학 : 네이버 뉴스 모바일, 인터넷, SNS, 통신 등 IT/과학 분야 뉴스 제공 news.naver.com 태그 추출은 지난 블로그를 토대로 진행한다. 2024.01.13 - [Python] - 웹 스크래핑으로 뉴스 기사 링크 받아오기 웹 스크래핑으로 뉴스 기사 링크 받아오기 웹스크래핑을 이용하여 IT 관련 뉴스를 보기 위한 코드입니다 웹 스크래핑 내용 2024.01.13 - [Python] - 웹 스크래핑 웹 스크래핑 웹크롤링: 웹사이트에서 URL, 키워드 수집(검색엔진이 웹사이트를 인 do..

Python 2024.01.17