본문 바로가기

전체 글269

#4 Python 코딩테스트 정렬 알고리즘 https://www.youtube.com/watch?v=KGyK-pNvWos&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=4 이 포스팅은 위의 영상을 보고 제가 필요하다고 생각된 부분을 정리한 포스팅입니다. 정렬 알고리즘 - 데이터를 특정한 기준에 따라 순서대로 나열하는 것. 1. 선택 정렬 처리되지 않은 데이터 중 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복 array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = .. 2021. 10. 20.
#2-3 Python 코딩테스트 그리디 알고리즘 , DFS & BFS https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 https://www.youtube.com/watch?v=7C9RgOcvkvo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=3 이 포스트는 위의 영상을 보고 제가 필요하다고 생각된 부분을 정리한 포스팅입니다. 그리디 알고리즘 : 현재 상태에서 지금 당장 좋은 것만 고르는 방법-> 이 방법을 이용했을 때 최적의 해를 구할 수 있는지 검토하는 것이 필요함. 스택 , 큐 : - 스택은 선입 후출 형태 list를 그대로 사용한다. append, pop을 활용. - 큐는 선입선출 형태 from collections.. 2021. 10. 20.
Python 입력 값 다양하게 받기 (input, map, split) Python에서는 input() 메서드를 통해 입력값을 다양하게 받을 수 있다. (보통 실행 창에서 직접 입력함) 하나씩 알아보자. 1. 문자열 입력 단순하게 input 만을 사용하면 문자열을 입력받게 된다. a = input() type(a) print(a) 2. 숫자 입력받기 python 내장 함수인 int()를 활용해서 input 값을 형 변환시켜줘서 숫자를 입력받을 수 있다. a = int(input()) print(type(a)) print(a) 3. split 활용 쪼개서 입력받기 python에는 split 이라는 함수를 제공한다. 간단하게 알아보면 문자열.split(분류조건, 나눌횟수)를 통해 리스트로 return 한다. split의 파라미터를 기본으로 하면 공백(띄어쓰기 탭 등등)을 기반으.. 2021. 10. 19.
#1 Python 코딩테스트 대비 여러 Tip 정리 https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 이 포스트는 위의 영상을 보고 제가 필요하다고 생각된 부분을 정리한 포스팅 입니다. - 실수형 데이터의 경우, 컴퓨터 특성상 4바이트나 8바이트로 실수를 표현하기 때문에 근사치를 표현하여 정확하게 떨어지지 않는 경우가 많다. - 따라서 round() 함수를 사용해서 소수점 반올림을 하는 방법이 권장된다. a = 123.456 print(round(a, 2)) # 123.46 리스트를 초기화 할 때 리스트 컴프리헨션을 활용해서 초기화 하면 편함 # 1차원 리스트 array = [0]*3 # [0,0,0] # 2차원 리스트 N * M N, M =.. 2021. 10. 7.
[AWS Glue] #1 Glue Add connection (JDBC) 처음 회사 입사하고 시작했던 게 AWS Glue 서비스를 활용하는 것 이었는데, 아무것도 모르는 상태에서 하려니깐 처음에 엄청 고생을 했다. 혹시 나 처럼 고생하실 분들이 있으실까봐 Glue 포스팅을 시간 날 때마다 해보겠다. 오늘은 DB와 Connection 하는 방법을 포스팅 하겠다. 많이 사용하는 JDBC 방식으로 진행하겠다. 그럼 AWS 콘솔에 접속하여 Glue Service에 들어가자. Connection name은 이름이고 편하신 것 적어주시면 된다. PostgreSQL connection을 해볼거라 PostgreSQL로 하겠다. Connection type은 JDBC 선택 AWS RDS를 써도 JDBC로 Connection 해도 된다. 하단에 SSL connection 할거면 체크해도 된다 .. 2021. 10. 5.
[프로그래머스] 약수의 개수와 덧셈 (Python) https://programmers.co.kr/learn/courses/30/lessons/77884# 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr import math def solution(left, right): return sum([-num if int(math.sqrt(num)) == math.sqrt(num) else num for num in range(left,right+1)]) - 제곱수만 약수의 개수가 홀수임을 이용하면 된다. ex) 1.. 2021. 9. 29.
[프로그래머스] 위클리 챌린지 8주차 - 최소직사각형 (Python) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in sizes) 최대 중 가장 큰 것 , 최소 중 가장 큰 것 2021. 9. 28.
[프로그래머스] 폰캣몬 (Python) https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr def solution(nums): return min(len(nums)//2, len(set(nums))) 2021. 9. 28.
Python 순열, 조합 (permutations, combinations, product) 파이썬 기본 라이브러리 itertools를 활용해서 여러 조합을 구할 수 있다. num_list = [1,2,3,4] # 순서 상관 있을 경우 from itertools import permutations list(permutations(num_list,2)) list(permutations(num_list,3)) # [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] # [(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1).. 2021. 9. 27.
[프로그래머스] 소수 만들기(Python) https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr from itertools import combinations import math def is_prime_number(x): for i in range(2, int(math.sqrt(x)) + 1): if x % i == 0: return False return True def solution(nums): prime_candidate = l.. 2021. 9. 27.
[프로그래머스] 음양 더하기(Python) https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 풀이: def solution(absolutes, signs): return sum(list(map(lambda x,y: x if y==True else -x ,absolutes,signs))) 다른 풀이: def solution(absolutes, signs): return sum(absolutes if sign else -absolut.. 2021. 9. 27.
[프로그래머스] 숫자 문자열과 영단어(Python) https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 내 풀이 : def solution(s): number = {'zero':'0','one':'1','two':'2','three':'3','four':'4','five':'5','six':'6','seven':'7','eight':'8','nine':'9'} answer='' temp='' for i in s: if i.isdecimal(): answ.. 2021. 9. 27.
[PostgreSQL] limit, offset limit, offset을 알아보자. LIMIT는 몇 개 불러올건지, OFFSET은 어디부터 불러올건지 -- 처음부터 시작해서 100개 Row 불러오기 SELECT * FROM table LIMIT 100; SELECT * FROM table LIMIT 100 OFFSET 0; -- 101번째부터 시작해서 5개 ROW 반환 SELECT * FROM table LIMIT 5 OFFSET 100; ---참고--- Python 코드에서는 이를 f-string + for loop 통해 활용 가능 (Data chunking) # Python import awswrangler as wr import boto3 def get_df(query): # Anyway, connect to AWS Database throug.. 2021. 9. 17.
#3 Airflow Concepts documentation 부수기 [Architecture] Airflow Tutorial documentation까지 읽었다면, 사실 python code가 어느 정도 익숙하다면 바로 작성해 보는 것도 좋다. 하단 이미지는 요새 회사에서 작성하고 있는 data pipeline의 일부분이다. airflow 도입 결정 1주일 정도에 이 정도 작성했는데, 물론 단순한 aws hook을 불러와서 실행시키는 작업들이 있기는 하지만, 복잡한 dependency를 만족해야 하는 workflow를 간단하게 작성한다는 것 자체가 Airflow가 정말 쉽고 좋다는 방증이다. 아무튼 조금 더 Airflow 지식과 시간적인 여유가 생기면 Airflow 사이드 프로젝트도 블로그에 포스팅할 예정이다. 일단 이 포스팅은 좀 더 개념적으로 Airflow에 대해 알아보기 위해 Airflow .. 2021. 8. 28.
#2 Airflow Tutorial documentation 부수기 https://airflow.apache.org/docs/apache-airflow/stable/tutorial.html Tutorial — Airflow Documentation airflow.apache.org Airflow Tutorial documentaion을 부숴보자 참고로 작성당시 Airflow 버전은 2.1.2이다. from datetime import timedelta from textwrap import dedent # The DAG object; we'll need this to instantiate a DAG from airflow import DAG # Operators; we need this to operate! from airflow.operators.bash import B.. 2021. 8. 26.