빅데이터 7

데이터 분석 프로젝트에서 Data Scientist, Data Engineer

Data Scientist(데이터 사이언티스트) : 수학, 통계, 분석Data Engineer(데이터 엔지니어) : 프로그래밍, 분산, 파이프라인 기술 스택이 완전 다르다.분석 후 배포를 하기 때문에 데이터 사이언티스트도 코딩도 어느정도 할 수 있어야 한다.반대로 엔지니어 입장에서도 데이터 사이언티스트의 분야를 어느정도 알고 있어야 한다. 데이터 엔지니어와 데이터 사이언티스트가 알아야 할 카테고리사업 이해 (Business Understanding)데이터 이해 (Data Understanding)데이터 수집 (Data Importing)데이터 정제 & 조작 (Data Cleaning & Manipulation)통계 모델링 & 기계 학습 (Statistical Modeling & Machine Learni..

직무 2023.06.28

파이썬(python) 10039번 평균 점수

문제링크 https://www.acmicpc.net/problem/10039 10039번: 평균 점수 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점 www.acmicpc.net 점수를 리스트로 만들고 점수 합계를 누적하면서 문제를 풀었다. import sys a = int(sys.stdin.readline()) b = int(sys.stdin.readline()) c = int(sys.stdin.readline()) d = int(sys.stdin.readline()) e = int(sys.stdin.readline()) score_list = [a..

알고리즘/백준 2021.12.24

파이썬(python) 2935번 소음

문제링크 https://www.acmicpc.net/problem/2935 2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net import sys a = int(sys.stdin.readline()) op = input() b = int(sys.stdin.readline()) if op == '*': print(a*b) elif op == '+': print(a+b)

알고리즘/백준 2021.12.24

파이썬(python) 5355번 화성 수학

문제 링크 https://www.acmicpc.net/problem/5355 5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net 적절한 for문을 사용하면서 문제를 풀었습니다. import sys t = int(sys.stdin.readline()) for _ in range(t): m = sys.stdin.readline().split() n = float(m[0]) # 맨앞자리는 숫자, 따로 추출 operator = m[1:] # 맨앞자리 제외하고 나머진 연산자 for i in opera..

알고리즘/백준 2021.12.24

collections (deque/Counter)

collections이라는 라이브러리에서는 deque와 Counter가 많이 쓰인다. deque deque와 list의 차이점은 시간 복잡도이다. list의 경우는 앞쪽에 있는 값을 처리할 때 리스트 개수에 따라 시간이 많이 소요된다. 앞쪽에 값을 추가/제거 할 경우 시간 복잡도는 O(N), 뒤쪽에 값을 추가/제거 할 경우 시간 복잡도는 O(1)이 걸린다. deque는 슬라이싱, 인덱싱이 불가능하지만 데이터를 추가/삭제할 때는 매우 효과적이다. - popleft() : 리스트의 첫 번째 값을 제거 - pop() : 리스트의 마지막 값을 제거 - appendleft() : 리스트의 맨 앞에 값을 추가 - append() : 리스트의 마지막에 값을 추가 from collections import deque ..

알고리즘/부록 2021.12.21

bisect

bisect - 이진 탐색을 구현할 수 있도록 파이썬에서 제공하는 라이브러리 - 정렬된 배열에서 특정한 원소를 찾을 때 효과적 - bisect_left(a, x) : 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드 - bisect_right(a, x) : 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메서드 from bisect import bisect_left, bisect_right a = [1,2,4,4,8] x = 4 print(bisect_left(a, x)) print(bisect_right(a, x)) ## 2 ## 4 정렬된 리스트에서 값이 특정 범위에 속하는 원소의 개수 구할 때 from bisect impor..

알고리즘/부록 2021.12.20

heapq 힙

heapq - heapq는 다익스트라 최단 경로 알고리즘을 포함해 다양한 알고리즘에서 우선순위 큐 기능을 구현하고자 할 때 사용 - PriorityQueue 라이브러리도 사용할 수 있지만, heapq가 보통 빠르다고 함 - heapq.heappush(): 힙에 원소 삽입 - heapq.heappop(): 힙에 원소 추출 - 파이썬의 힙은 최소 힙으로 구성되어 있어 원소를 힙에 전부 넣어다가 뺴는 것으로도 시간 복잡도 O(NlogN)에 오름차순 정렬됨 최소 힙 구현 import heapq def heapsort(iterable): h = [] # 힙 result = [] # 모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappush(h, value) # 힙에 삽입된..

알고리즘/부록 2021.12.20