1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 4-9 4주차 끝 & 숙제 설명 어떤 알고리즘을 학습하고 계신가요? 첫번째 문제 (라면공장) 여기까지 이해하신 내용은 무엇인가요? stock이라는 변수에, 날짜가 stock값보다 작은 date일 때의 supplies들 중 최대 값을 얻어서 다시 stock에 += 해주면서 최종적으로 stock이 k보다 커졌을 때 반복을 종료하고 결과값을 return하는 전반적인 알고리즘은 이해하였습니다. 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 정답이 4가 나오는 예시 문제 코드의 어떤 로직이 이해가 안 되시나요? while stock <= k : 라는 반복문이 실행될 때 마다 max_heap을 왜 초기화시켜주지 않는 건가요? stock을 업데이트 하기 전에 남아있는 max_heap의 원소들과, stock을 업데이트 한 후에 새로이 추가된 max_heap의 원소들 중에 전자의 경우에서 max값이 나올 수 있기 때문인가요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 가장 바깥의 while문에서 벗어나지 못하는 문제 현재 작성하신 코드를 공유해주세요 def get_minimum_count_of_overseas_supply(stock, dates, supplies, k): # 풀어보세요! max_coverd_date = 0 result = 0 remained_stock = stock max_coverd_date += remained_stock while max_coverd_date < k: #k일을 버틸 수 있을 때까진 반복해야 함 can_supplied_qty_list = [] while dates: supply_date = dates[0] if supply_date <= max_coverd_date: dates.pop(0) can_supplied_qty_list.append(supplies.pop(0)*-1) else: break if can_supplied_qty_list: heapq.heapify(can_supplied_qty_list) max_supplied_qty = heapq.heappop(can_supplied_qty_list)*-1 max_coverd_date += max_supplied_qty result += 1 return result 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? => 1-5. 알고리즘과 친해지기 (2) 어떤 알고리즘을 학습하고 계신가요? => 최빈값 구하기 2. 어려움을 겪는 부분 어떤 개념이 헷갈리시나요? => 안녕하세요~ 화면 캡쳐가 안돼서 말로 설명하자면, 강의 마지막 시뮬레이션 영상(25:58)에서 max_alphabet_index가 8이었다가, 13이었다가, 마지막에 14인 채로 끝나는 이유가 뭔가요? 코드 상으로, if문 조건절에 등호를 붙이지 않았기 때문에(`if alphabet_occurrence > max_occurance:`), 동일한 최빈값 중에서는 알파벳 순서가 가장 앞에 위치한 알파벳이 max로 저장된다는 것은 이해했습니다! 그냥 시뮬레이션 영상 자체에 대한 질문이었어요! 근데 쓰다 보니 쓸 데 없는 질문인 것 같긴 하네요 😅 그냥 코드 상으로 이해했다면 넘어가도 괜찮겠죠!?? 감사합니다!!
3-8 해쉬-2 강의 수강 중 출석체크 문제에서 2중 for문, 정렬, hash table 3가지 방식에 대한 시간복잡도를 설명해주셨는데 hash table 시간복잡도에서 값 등록 시 최선이 1 최악이 N인데 최선을 고려한다. 라고 하셨는데 보통 어떤 입력이 들어올지 모르니 최악을 고려해야하는거 아닌가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 빅분기 실기 작업형 1유형, 2유형, 3유형은 대체 무엇을 묻기 위해 어떤 기준으로 구분한 것인지 그 설명을 듣고 싶습니다. 그래서 무엇을 정리하고 준비해야 하는지에 대한 정리를 실제 작업형 1,2,3유형 문제를 두고 설명해 주시기 바랍니다. 즉, 작업형 문제를 바로 풀기에 앞서 이 문제는 무엇을 묻기 위한 문제로 배경지식으로는 무엇이 필요한 것인지 문제에 출제 문제의 설명(출제 포인트)을 달아 주시기 바랍니다. 빅분기 실기 항목은 데이터수집작업, 전처리작업, 모형구축작업, 모형평가작업이라고 나와 있는데 이것이 각각 작업형 1~3유형에 어디에 해당하는지 설명이 없고, 작업형 1~3유형 또한 데이터수집작업, 전처리작업, 모형구축작업, 모형평가작업 중 어디에 해당하는지 설명이 없습니다. 이러한 내용이 정리되었으면 좋겠습니다. GPT에 물으니 아래와 같은 답변이 나왔는데 맞는지도 검토바랍니다. 빅데이터분석기사 실기 시험에서 작업형 문제는 제1유형, 제2유형, 제3유형 으로 구분됩니다. 각 유형은 문제 해결 방식과 요구되는 기술적 접근법이 다릅니다. 작업형 문제 유형별 특징 작업형 제1유형 (30점, 3문제, 각 10점) 주요 내용 : 데이터 전처리 및 기초적인 데이터 분석 요구되는 기술 : 데이터 정리(결측치 처리, 이상치 제거) 데이터 변환(스케일링, 원-핫 인코딩 등) 간단한 통계 분석(평균, 중위수, 표준편차 등) 예제 : 주어진 데이터셋에서 특정 열의 결측치를 평균값으로 대체하시오. 작업형 제2유형 (40점, 1문제, 가장 배점 높음) 주요 내용 : 머신러닝 모델 구축 및 평가 요구되는 기술 : 데이터셋 분할(훈련/테스트 세트) 머신러닝 알고리즘 적용(랜덤포레스트, XGBoost 등) 모델 성능 평가(정확도, RMSE 등) 예제 : 주어진 데이터를 이용하여 고객 이탈 여부를 예측하는 분류 모델을 구축하고, 정확도를 출력하시오. 작업형 제3유형 (30점, 2문제, 각 15점) 주요 내용 : 데이터 시각화 및 고급 데이터 분석 요구되는 기술 : 데이터 시각화(히스토그램, 박스플롯, 산점도 등) 군집 분석(K-means, DBSCAN 등) 연관 분석(Apriori, FP-Growth 등) 예제 : 주어진 데이터를 이용해 군집 분석을 수행하고, 각 군집의 평균값을 시각화하시오. 시험에서 중요한 점 작업형 제2유형(40점)이 가장 중요 하므로, 모델 구축과 평가 연습이 필수입니다. 시험 환경은 구름IDE 기반 이므로, Python(Pandas, Scikit-learn, Matplotlib 등)에 익숙해져야 합니다. 제1유형과 제3유형은 기본적인 데이터 처리 및 시각화 능력을 평가 하므로, 이를 빠르게 해결할 수 있도록 연습이 필요합니다.
[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
xgboost 2.1.3 버전의 XGBRegressor 사용시 pandas 2.2.2에서는 pd.util.version이 제거되었으므로 "AttributeError: module 'pandas' has no attribute 'util'"에러 발생하여 xgboost 라이브러리 코드를 수정해야 함 경로: $ANACONDA3_HOME/lib/python3.12/site-packages/xgboost/data.py 수정 후 주피터 재시작 # 기존 def is_pd_sparse_dtype(dtype: PandasDType) -> bool: """Wrapper for testing pandas sparse type.""" import pandas as pd if hasattr(pd.util, "version") and hasattr(pd.util.version, "Version"): Version = pd.util.version.Version if Version(pd.__version__) >= Version("2.1.0"): from pandas import SparseDtype return isinstance(dtype, SparseDtype) from pandas.api.types import is_sparse return is_sparse(dtype) # 변경 def is_pd_sparse_dtype(dtype: PandasDType) -> bool: """Wrapper for testing pandas sparse type.""" import pandas as pd from pandas import SparseDtype return isinstance(dtype, SparseDtype)
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 어떤 알고리즘을 학습하고 계신가요? 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 def get_max_discounted_price(prices, coupons): if prices: prices.sort() if coupons: coupons.sort() discounted_prices = [] while prices and coupons: max_price = prices.pop() max_coupon = coupons.pop() discounted_prices.append(max_price * (100 - max_coupon) / 100) total_sum_prices = sum(discounted_prices) + sum(prices) return total_sum_prices 사실상 같은코드긴 한데, 혹시나해서 검증받고싶어서..
스크립트 다운받아 보니... containerd repo 설치 하는 명령어가 아래와 같이 되어있는데 실제 문서상에는 dnf 가 들어가있고 추가로 sudo dnf -y install dnf-plugins-core 도 있던데... 이부분은 누락된건가요?? 그냥 아래 명령어로 되는건가요? yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 또 한가지는 강의중에 containerd.io 버전에 대해 언급하신건 들었는데...LTS버전까지는 들어서 알겠는데..실제 설치할 버전확인 하는법에 대해서는 언급이 없었는데...나중에 설명해주신다고 하셨던것도 같고...docker설치하면 거기에서 명령어로 확인할수있다고 검색은 되는데...이건 설치도 전인데 어떻게 파일명까지 사전에 확인이 가능한지요? yum install -y containerd.io -1.6.21-3.1.el8
수업을 적용하며 크롤링 연습을 하고 있는데, 웹 크롤링 대상중 웹에디(smart_editor2) 안의 텍스트를 크롤링하는 방법이 궁금합니다. 셀레니움을 활용하여 적용하고 있는데 웹에디터는 접근이 잘 안되고 접근이 된것 같은데 텍스트가 출력되지 않습니다 어떠헥 해야 할지 모르겠어서 질의 드려요 외부 접근되지 않는 사이트이고 아이디 비번은 마스킹 처리한 코드는 아래와 같습니다. 결국 아래 부분이 문제인것 같은데 에디터 내 텍스트 추출 방법을 몰라 문의드려요 try: driver.switch_to.frame("iframe4dummy") # 🔹 iframe 내부로 이동 # 🔹 iframe 내부에서 특정 클래스("se2_inputarea")를 가진 body 태그 찾기 # 🔹 iframe 내부의 `body` 태그에서 텍스트 가져오기 body = driver.find_element(By.CSS_SELECTOR, "body") answer = body.text.strip() print("✅ HTML 에디터 내용:", answer) # 🔹 다시 원래 페이지로 복귀 driver.switch_to.default_content() except Exception as e: print("❌ iframe 전환 실패 또는 body 태그를 찾을 수 없습니다:", str(e)) from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from urllib.parse import urlencode # URL 파라미터 추가용 import time import random import openpyxl import requests from bs4 import BeautifulSoup from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC newscralling =[] import pyautogui import pyperclip #크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager # #브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service = service) # 웹페이지 해당 주소 주소이동 driver.implicitly_wait(2) #웹페이지가 로딩 될때까지 5초 대기 driver.maximize_window() driver.get("https://OOO") #아이디 입력창 id = driver.find_element(By.CSS_SELECTOR, ".submitLogin.text:nth-of-type(1)") id.click() pyperclip.copy("id") pyautogui.hotkey("ctrl", "v") time.sleep(0.3) # id.send_keys(Keys.TAB) # #비밀번호 입력창 직접입력 # time.sleep(7) pw = driver.find_element(By.CSS_SELECTOR, ".login ul li:nth-of-type(2) input") pw.click() # pw.send_keys("비밀번호") pyperclip.copy("pass") pyautogui.hotkey("ctrl", "v") #로그인 버튼 login_btn = driver.find_element(By.CSS_SELECTOR, ".btnLogin") login_btn.click() time.sleep(1) params = { "counselProcStatus": 2, "page": 1, "pageSize": 2 } #SSL인증 비활성화에 대한 경고메시지 삭제 import urllib3 urllib3.disable_warnings() qna_list_url = "https://OOO"+ urlencode(params) driver.get(qna_list_url) html = driver.page_source soup = BeautifulSoup(html, 'html.parser') articles = soup.select(".boardListStyle table tbody tr") import openpyxl from datetime import datetime wb = openpyxl.Workbook() ws = wb.active ws.title = "온라인상담_접수중" ws.append(["date", "category", "title", "quest", "answer", "man", "status"]) crowling = [] for article in articles: title = article.select_one(".alignLeft a").text date = article.select_one(".boardListStyle table tbody td:nth-of-type(4)").text category = article.select_one(".boardListStyle table tbody td:nth-of-type(2)").text status = article.select_one(".boardListStyle table tbody td:nth-of-type(7)").text link = 'https://OOO/'+ article.select_one(".alignLeft a").attrs['href'] title_link = f'=HyPERLINK("{link}", "{title}")' #상세 페이지 요청 driver.get(link) time.sleep(2) # 페이지 로딩 대기 detail_html = driver.page_source detail_soup = BeautifulSoup(detail_html, 'html.parser') quest = detail_soup.select_one(".con_txt").text try: driver.switch_to.frame("iframe4dummy") # 🔹 iframe 내부로 이동 # 🔹 iframe 내부에서 특정 클래스("se2_inputarea")를 가진 body 태그 찾기 # 🔹 iframe 내부의 `body` 태그에서 텍스트 가져오기 body = driver.find_element(By.CSS_SELECTOR, "body") answer = body.text.strip() print("✅ HTML 에디터 내용:", answer) # 🔹 다시 원래 페이지로 복귀 driver.switch_to.default_content() except Exception as e: print("❌ iframe 전환 실패 또는 body 태그를 찾을 수 없습니다:", str(e)) #answer = detail_soup.select_one(".se2_input_area.husky_seditor_editing_area_container iframe").text man = detail_soup.find('th', string="작성자").find_next_sibling().text crowling = ws.append([date, category, title, quest, answer, man, status]) driver.back() # 브라우저에서 '뒤로 가기' 실행 print(date, category, title, quest, answer, man, status) now = datetime.now().strftime("%Y%m%d_%H%M%S") filename = f"온라인상담_{now}.xlsx" wb.save(filename)
powershell에서는 usermod -aG 명령어로 정상적으로 권한부여 됐는데(docker run hello-world) vscode 터미널에서는 권한부여가 자꾸 오류납니다 같은 환경이라고 생각해서 powershell에서 계속 작업을 했었는데, dev container reopen할때 권한 오류가 나더라구요. 원인이 무엇일까요? 재부팅 및 terminal kill해도 해결이 안되네요