안녕하세요 강사님
실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
안녕하세요 강사님 제가 DBA 업무를 본지 2년차 되가는데요. 아는 지인분께서 데이터 엔지니어 영역도 배워보는거 어떻냐고 하셔서 강의를 찾고 있는데요. 강사님 강의가 생각나서 문의드립니다. 혹시 강사님 강의중에 데이터 엔지니어에게 도움이 될만한 강의들 추천해주실수 있으실까요?
- python
- 알고리즘
173만명의 커뮤니티!! 함께 토론해봐요.
실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
안녕하세요 강사님 제가 DBA 업무를 본지 2년차 되가는데요. 아는 지인분께서 데이터 엔지니어 영역도 배워보는거 어떻냐고 하셔서 강의를 찾고 있는데요. 강사님 강의가 생각나서 문의드립니다. 혹시 강사님 강의중에 데이터 엔지니어에게 도움이 될만한 강의들 추천해주실수 있으실까요?
초보자를 위한 BigQuery(SQL) 입문
안녕하세요. 초보자를 위한 BigQuery(SQL) 입문 잘 들었습니다. 생각보다 재미가 있어서 계속 해보려 하는데 무엇을 해야할지 잘 몰라서 고민입니다. 강의 후반부에 "앞으로 배우면 좋을 내용" 에 있는 순서대로 해보려 했습니다. 공식 문서와 블로그 글을 통해 ARRAY, STRUCT의 기본 공부를 했습니다. 다음으로 넘어가 복잡한 데이터 가공하기 부분을 하고 있습니다. 우선 bigquery의 공개 데이터를 사용해 보자는 생각을 했고 Google Trends datasets과 COVID-19 Public Datasets을 살펴봤습니다. 세부사항과 데이터를 보며 어떤 것을 의미하는지까지는 알 수 있었습니다. 다만 이후부터 어떻게 해야할지 감이 안 왔습니다. 강의를 수강할 때는 예제 문제들이 있으니 배운 것을 적용할 수 있었는데, 처음 보는 데이터고 어떤 목적을 갖고 분석을 해야할지 모르겠습니다. bigquery 프로젝트 예제를 찾아봤지만 마땅한게 없었습니다. 혹시 이 강의를 수강하고 연습해 보기 좋은 dataset과 어떤 방식으로 프로젝트를 진행해야 할지 알고 싶습니다.
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
안녕하세요! 앞으로의 코테 준비 방향에 대해 더 질문하고자 합니다. 1. 지금 프로그래머스 기초, 입문은 전부 푼 상태이고 앞으로는 유형별로 풀어볼 계획입니다. 저는 여러 문제들을 푸는 것보다는 풀었던 문제들을 설명할 수 있을 정도까지 반복해서 푸는 것이 중요하다고 생각합니다. 그래서 유튜브 플레이리스트에 올려 놓으신 유형별 문제들과 각 알고리즘 설명 영상 마지막에 추천하는 문제들을 반복적으로 풀어보려고 하는데 괜찮은 방법일까요? 2. 각 유형별 문제들 혹시 추천 받을 수 있을까요?
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
코딩테스트 준비하다가 답답해서 이 영상 보고 어느정도 의문스러운 점이 해소돼서 방향성을 잡았는데 혹시 어떤지 한번 봐주실 수 있나요? 현재 프로그래머스에서 기초, 입문으로 분류된 문제들은 다 풀었고 나머지 문제들 정답률 높은 순부터 풀고 있었습니다. 프로그래머스와 유튜브 플레이리스트로 분류하신 알고리즘 빈출 유형 문제들만 반복해서 풀어보려고 했는데 괜찮을까요? 그리고 저번에 이 강의 소스코드 올려주신다고 한 거 같은데 좀 걸릴까요?
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
원래는 프로그래머스에서만 풀다가 이번에 처음 백준 사이트를 이용하는 중입니다. 프로그래머스와 달리 테스트 케이스 테스트 해보기도 너무 어렵고 실수한 곳을 찾아내기가 너무 어려운데 혹시 추천하는 방법 있으신가요? 혹시 코드 답은 따로 안 올려주시나요? 강의 페이지에 한번에 들어오지 않아 일일이 비교해가면서 정답을 맞추기 어렵습니다.
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
안녕하세요 ! 선생님! 본 강의를 수강 중인 학생입니다. 2304 문제를 풀어보려고 고민을 1시간 정도 하다가 도저히 길이 보이지 않아서 선생님의 코드를 봤는데요 for i in range(n): x, y = map(int,input().split()) graph[x] = y x_list.append(x) y_list.append(y) 이런식으로 그래프를 리스트 형태로 구현하여 풀이를 하시더라구요.. 저는 도저히 이런 창의적인 방법이 떠오르지 않아서 어떻게 풀어야 할지 길이 보이지가 않습니다.. 이럴 때는 어떻게 해야하질 막막하네요.. 어떻게 하면 아 이건 graph[x] = y 와 같은 코드를 통해 풀어나가야 겠다! 라는 생각이 들 수 있는건지.. 막막합니다 ㅜㅜ 재능이 없는 걸까요,,
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
public class BOJ_12865 { static int N; static int K; static int[][] merchandise; // 0 : 무게, 1 : 가치 static int[][] dp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); K = sc.nextInt(); merchandise = new int[N][2]; dp = new int[10000000][N]; for (int i = 0; i < 10000000; i++) { for (int j = 0; j < N; j++) { dp[i][j] = -1; } } for (int i = 0; i < N; i++) { merchandise[i][0] = sc.nextInt(); merchandise[i][1] = sc.nextInt(); } int max = recursion(0, 0); System.out.println(max); } private static int recursion(int index, int weight) { if (weight > K) { return Integer.MIN_VALUE; } if (index == N) { return 0; } if (dp[weight][index] != -1) { return dp[weight][index]; } dp[weight][index] = Math.max(recursion(index + 1, weight), recursion(index + 1, weight + merchandise[index][0]) + merchandise[index][1]); return dp[weight][index]; } 안녕하세요 덕분에 강의 잘 듣고 있는 수강생입니다. 냅색 문제를 풀고 있는데, 최대 가능한 무게의 경우 100 (배낭 물품의 최대 개수) * 100,000(각 물건의 최대 무게) 로 생각보다 생성해줘야하는 배열의 크기가 크더라구요. 그래서 혹시 dp를 1차원 배열로 생성하면 어떻게 되는 지 궁금하여 1차원 배열로 해본 결과, 무게를 고려하지 않고 dp의 무게 갱신을 하게 되어 답이랑은 다르게 나오네요. 혹시 1차원 배열을 시도하려고 할 때 제가 놓치고 있는 부분이 있을까요?감사합니다.
데이터 분석 SQL Fundamentals
안녕하세요 '실습용 스키마 설치 이슈 시 적용하세요'라는 강의편에 맥북에서 create schema nw; 이렇게 DBeaver에서 실행을 하면 아래와 같은 에라가 뜨네요 ㅠ SQL Error [42501]: ERROR: permission denied for database postgres
다양한 사례로 익히는 SQL 데이터 분석
query = """ select * from nw.customers """ df = pd.read_sql_query(sql=query, con=postgres_engine) df.head(10) --------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) Cell In[25], line 4 1 query = """ 2 select * from nw.customers 3 """ ----> 4 df = pd.read_sql_query(sql=query, con=postgres_engine) 5 df.head(10) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:468, in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize, dtype, dtype_backend) 465 if dtype_backend is lib.no_default: 466 dtype_backend = "numpy" # type: ignore[assignment] --> 468 with pandasSQL_builder(con) as pandas_sql: 469 return pandas_sql.read_query( 470 sql, 471 index_col=index_col, (...) 477 dtype_backend=dtype_backend, 478 ) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:832, in pandasSQL_builder(con, schema, need_transaction) 829 raise ImportError("Using URI string without sqlalchemy installed.") 831 if sqlalchemy is not None and isinstance(con, (str, sqlalchemy.engine.Connectable)): --> 832 return SQLDatabase(con, schema, need_transaction) 834 warnings.warn( 835 "pandas only supports SQLAlchemy connectable (engine/connection) or " 836 "database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 " (...) 839 stacklevel=find_stack_level(), 840 ) 841 return SQLiteDatabase(con) File ~\anaconda3\Lib\site-packages\pandas\io\sql.py:1539, in SQLDatabase.__init__(self, con, schema, need_transaction) 1537 self.exit_stack.callback(con.dispose) 1538 if isinstance(con, Engine): -> 1539 con = self.exit_stack.enter_context(con.connect()) 1540 if need_transaction and not con.in_transaction(): 1541 self.exit_stack.enter_context(con.begin()) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:3245, in Engine.connect(self) 3222 def connect(self) -> Connection: 3223 """Return a new :class:`_engine.Connection` object. 3224 3225 The :class:`_engine.Connection` acts as a Python context manager, so (...) 3242 3243 """ -> 3245 return self._connection_cls(self) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:145, in Connection.__init__(self, engine, connection, _has_events, _allow_revalidate, _allow_autobegin) 143 if connection is None: 144 try: --> 145 self._dbapi_connection = engine.raw_connection() 146 except dialect.loaded_dbapi.Error as err: 147 Connection._handle_dbapi_exception_noconnection( 148 err, dialect, engine 149 ) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\base.py:3269, in Engine.raw_connection(self) 3247 def raw_connection(self) -> PoolProxiedConnection: 3248 """Return a "raw" DBAPI connection from the connection pool. 3249 3250 The returned object is a proxied version of the DBAPI (...) 3267 3268 """ -> 3269 return self.pool.connect() File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:452, in Pool.connect(self) 444 def connect(self) -> PoolProxiedConnection: 445 """Return a DBAPI connection from the pool. 446 447 The connection is instrumented such that when its (...) 450 451 """ --> 452 return _ConnectionFairy._checkout(self) File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:1255, in _ConnectionFairy._checkout(cls, pool, threadconns, fairy) 1247 @classmethod 1248 def _checkout( 1249 cls, (...) 1252 fairy: Optional[_ConnectionFairy] = None, 1253 ) -> _ConnectionFairy: 1254 if not fairy: -> 1255 fairy = _ConnectionRecord.checkout(pool) 1257 if threadconns is not None: 1258 threadconns.current = weakref.ref(fairy) File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:716, in _ConnectionRecord.checkout(cls, pool) 714 rec = cast(_ConnectionRecord, pool._do_get()) 715 else: --> 716 rec = pool._do_get() 718 try: 719 dbapi_connection = rec.get_connection() File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\impl.py:168, in QueuePool._do_get(self) 166 return self._create_connection() 167 except: --> 168 with util.safe_reraise(): 169 self._dec_overflow() 170 raise File ~\anaconda3\Lib\site-packages\sqlalchemy\util\langhelpers.py:147, in safe_reraise.__exit__(self, type_, value, traceback) 145 assert exc_value is not None 146 self._exc_info = None # remove potential circular references --> 147 raise exc_value.with_traceback(exc_tb) 148 else: 149 self._exc_info = None # remove potential circular references File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\impl.py:166, in QueuePool._do_get(self) 164 if self._inc_overflow(): 165 try: --> 166 return self._create_connection() 167 except: 168 with util.safe_reraise(): File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:393, in Pool._create_connection(self) 390 def _create_connection(self) -> ConnectionPoolEntry: 391 """Called by subclasses to create a new ConnectionRecord.""" --> 393 return _ConnectionRecord(self) File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:678, in _ConnectionRecord.__init__(self, pool, connect) 676 self.__pool = pool 677 if connect: --> 678 self.__connect() 679 self.finalize_callback = deque() File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:902, in _ConnectionRecord.__connect(self) 900 self.fresh = True 901 except BaseException as e: --> 902 with util.safe_reraise(): 903 pool.logger.debug("Error on connect(): %s", e) 904 else: 905 # in SQLAlchemy 1.4 the first_connect event is not used by 906 # the engine, so this will usually not be set File ~\anaconda3\Lib\site-packages\sqlalchemy\util\langhelpers.py:147, in safe_reraise.__exit__(self, type_, value, traceback) 145 assert exc_value is not None 146 self._exc_info = None # remove potential circular references --> 147 raise exc_value.with_traceback(exc_tb) 148 else: 149 self._exc_info = None # remove potential circular references File ~\anaconda3\Lib\site-packages\sqlalchemy\pool\base.py:898, in _ConnectionRecord.__connect(self) 896 try: 897 self.starttime = time.time() --> 898 self.dbapi_connection = connection = pool._invoke_creator(self) 899 pool.logger.debug("Created new connection %r", connection) 900 self.fresh = True File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\create.py:640, in create_engine.<locals>.connect(connection_record) 638 if connection is not None: 639 return connection --> 640 return dialect.connect(*cargs, **cparams) File ~\anaconda3\Lib\site-packages\sqlalchemy\engine\default.py:580, in DefaultDialect.connect(self, *cargs, **cparams) 578 def connect(self, *cargs, **cparams): 579 # inherits the docstring from interfaces.Dialect.connect --> 580 return self.loaded_dbapi.connect(*cargs, **cparams) File ~\anaconda3\Lib\site-packages\psycopg2\__init__.py:122, in connect(dsn, connection_factory, cursor_factory, **kwargs) 119 kwasync['async_'] = kwargs.pop('async_') 121 dsn = _ext.make_dsn(dsn, **kwargs) --> 122 conn = _connect(dsn, connection_factory=connection_factory, **kwasync) 123 if cursor_factory is not None: 124 conn.cursor_factory = cursor_factory UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 63: invalid start byte 판다스 버전과 sqlalchemy 버전은 다음과 같이 맞추었습니다 2.0.3 2.0.0
Oracle PL/SQL 딱 이만큼.. [개념+실전]
안녕하세요! 수업 정말 잘듣고 있습니다!! 공부한거를 블로그에 작성 하려하는데 예제 같은 것을 출처를 밝혀 포스팅 해도될까요??
4시간 안에 끝내는 해외 취업 코딩테스트 실전 노하우
안녕하세요, 좋은 강의 감사합니다. 한국에서 6년차 백엔드 개발 경력이 있고, 호주 취업에 관심이 있어서 알아보고 있던 중 이 강의를 결제하게 되었어요. 요약해서 알려주신 부분은 너무 좋은데, 초급이라 적혀있으나 알고리즘을 풀어보지 않은 저에게는 난이도가 많이 높은 것 같아요. 해당 난이도를 소화하기 이전에 학습하면 좋을 부분이 있을까요?
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
파이썬 언어 이제 막 땐 코린이예요 올해 6월 쯤에 네이버 부스트캠프 코딩테스트가 있어서 준비중에 있는데 강의 완강한다면 합격권은 될까요? dfs, bfs, 구현, 누적합, 비트마스킹, 완탐, 그래프이론 정도가 범위라고 해요 첫 강때 난이도에 쫄지 말라고 하셔서 안쫄아 보려고는 하는데, 강의하시는 범위에 해당 되는지 궁금하네요 완강하는데 어느정도 걸릴까요? 강의명대로 2주잡고 하면 될까요? 하루에 몇강정도를 추천하시는지 궁금해요 시험까지 대략 4~5달 정도 남았는데, 부스트캠프에서 사용하는 자바스크립트로 개인 플젝 하면서 코테를 공부할지, 코딩테스트에만 확실히 집중해야될지 고민이네요 주변에 비교대상이 없어서 막막해서 여쭤봐요! 마지막으로 양질의 강의 감사합니다 열심히 배워볼게요
코딩테스트 [ ALL IN ONE ]
안녕하세요 cs지식 강의 듣고 강의력이 너무 좋아서 코테도 신청 하여 이제 막 듣고있습니다. 반도체 장비회사 쪽 근무하고 있고, 이직하려고 회사를 몇개 넣었는데, 서류가 붙는다면 1달정도 이내에 코딩 테스트를 보게 될 것 같아 시간이 촉박 한 상황입니다. 퇴근하고 코테에 CS지식에 시간도 빠듯한 상황인지라... 이런 경우에 좀더 효율적인 코테 공부방법이 무엇인지 궁금합니다. 참고로 코테 강의도 너무 강의 전달력이 참 좋으신 것 같습니다. 이해가 잘되네요..
그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
원본배열 유지하고 새 배열 반환하도록 리팩토링한 GPT 코드입니다. 주석 달아달라니까 주석까지 친절하게 달아주네요ㅋㅋ 세상참 편해졌네요. GPT로 코테보는 사람도 있어서 그거 방지하려고 캠이랑 실시간으로 하는 경우도 있더라구요... function mergeSort(arr, leftIndex, rightIndex) { // 기저 사례: 하나의 요소만 있는 경우, 그 요소를 배열로 반환 if (leftIndex >= rightIndex) { return [arr[leftIndex]] } // 중간 지점 계산 let midIndex = parseInt((leftIndex + rightIndex) / 2) // 배열을 두 부분으로 나누어 각각을 재귀적으로 정렬 let leftArr = mergeSort(arr, leftIndex, midIndex) let rightArr = mergeSort(arr, midIndex + 1, rightIndex) // 병합된 배열 반환 return merge(leftArr, rightArr) } function merge(leftArr, rightArr) { let result = []; // 병합된 요소를 저장할 배열 let leftIndex = 0, rightIndex = 0; // 각 배열의 인덱스 // 두 배열 중 하나가 완전히 순회될 때까지 반복 while (leftIndex < leftArr.length && rightIndex < rightArr.length) { // leftArr의 현재 요소와 rightArr의 현재 요소를 비교 if (leftArr[leftIndex] < rightArr[rightIndex]) { // leftArr의 요소가 더 작은 경우, 결과 배열에 추가하고 leftArr의 인덱스 증가 result.push(leftArr[leftIndex]); leftIndex++; } else { // rightArr의 요소가 더 작거나 같은 경우, 결과 배열에 추가하고 rightArr의 인덱스 증가 result.push(rightArr[rightIndex]); rightIndex++; } } // 남은 요소들을 결과 배열에 추가 // leftArr 또는 rightArr 중 하나가 이미 완전히 순회된 후, 나머지 배열의 남은 요소들을 결과 배열에 추가 return result.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex)); }
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
안녕하세요! 먼저 좋은 강의 해주셔서 감사드립니다. 저는 코테를 준비하며 답지를 보지 않고 정답이 나올때까지 충분히 고민하며 풀었습니다. 그러다보니 한 문제를 푸는데 시간도 너무 많이 소요되었고 이제는 알고리즘, 자료구조 없이 문제를 풀기가 불가능한거 같습니다..(실버 2정도입니다..) 그래서 최근 강의를 듣기 시작하였고, 강의를 듣기 전 먼저 문제를 풀어보면 답은 맞지만 코드 효율성이 떨어져 시간 초과 혹은 메모리 초과가 자주 발생합니다. 제가 익숙치 않아서 그런걸까요?? 논리를 이해하고 코드를 외운 후 많은 문제를 풀면 개선될 여지가 있는건지 궁급합니다. 또한 추천해주실만한 학습방법이 있을까요? 항상 좋은 강의해주셔서 감사드립니다.
실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
"".join 의미를 아직까지 잘 이해 못하겠어요. 특히 "" 부분이요. 문자열을 리스트로 형태변환 리스트 = list(문자열) 리스트를 문자열로 형태변환 문자열 = "".join(리스트) 그냥 이렇게 일단 외워야 하나요?
Do it! 알고리즘 코딩테스트 with JAVA
안녕하세요! 강의 잘 듣고 있는 수강생입니당! 강의 커리큘럼에서 삽입, 퀵, 병합, 기수 정렬 개념 강의와 더불어 자바 예제 풀이 강의는 없는지 궁금합니다. 😊
[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
안녕하세요. 선생님 덕분에 멋진 강의를 듣고 있는 학생입니다.이제 유형 1을 다 수강했는데, graph를 초기화할 때 보통 N의 개수가 적으면 불리언 2차원 배열로 선언하고, N의 개수가 많으면 빈리스트로 구성된 2차원 리스트로 선언하는데요.그냥 모든 문제에 빈리스트로 구성된 2차원 배열을 선언하지 않는 이유가 N의 개수가 적으면 배열로 선언하고 조회하는 게 더 빠르기 때문인지 여쭤봐도 될까요?
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
삭제된 글입니다
[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
SAS만 다뤘었고 SQL + Python이 대세인 가 싶었는데 어느 순간 대시보드 구축능력도 요구하네요 ㅋㅋㅋㅋ tableau 강의가 있으실지요.. 뭐부터 손을 대야 할지 .. 고민입니다.