59분 14초까지 따라가서 arr[0]까지 되는건 이해가 가는데 그 뒷부분이 설명이 여러번 다시들어봐도 거기서 길을 잃었어요.. 계산을 return줄에서 해서 그 값으로 위로 쭉쭉 올라가면서 계산하는게 맞나요? 59분 42초에서 arr[1] arr[0] 이렇게 적으셨는데 return(arr[size-1]>max)?arr[size-1]:max; 에서 size에 1을 넣으면 배열[0]이 1인건 알겠는데 5(배열[1])가 어디서 어떤식으로 나와서 어떻게 비교가 되는건지 모르겠어요
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db --name todos mysql:8.0 ALTER USER 'root' @ ' localhost ' IDENTIFIED WITH caching_sha2_password BY '비밀번호' ; 명령어로 root계정의 비밀번호를 바꿨고, 이후에 mysql -u root -p로 root계정에 접속할 때는 변경된 비밀번호로 잘 작동합니다. 그러나, workbench에서 localhost:3306 root계정에 접속하려할 때, 계속해서 강의중 설정한 todos라는 비밀번호를 입력해야 접근이 가능한 상황입니다. 왜 cmd에서 변경한 비밀번호가 워크벤치에 적용되지 않는것인지 궁금해서 문의드립니다. 해결방법이 있을까요?
안녕하세요 강사님. 해당 강의 정말 재밌게 잘 들었습니다. 다름이 아니라 강의 들으면서 커리큘럼 내에 비동기 API 사용시 단점이라거나 문제점 또는 주의사항 같은 내용을 못봤던 것 같은데 실무에서 비동기 API 를 적용하려 할 때 일반적인 동기 API 개발에 비해 주의해야 할 사항 같은 게 있을까요? run_in_threadpool 동작하는 걸 보면 거의 완벽한 프레임워크 같고, 장고나 다른 프레임워크에 비해 단점도 없어보여서 질문드립니다.
경우의 수 문제에서는 memo[i]가 i번째 계단까지 도달하는 방법의 수를 저장했다. 최소 비용 문제에서는 memo[i]가 i번째 계단까지 도달하는 총 비용을 저장했다. 그렇다면 memo[i]가 이미 최소 비용을 저장하고 있다면, 왜 cost[i]까지 더해야 하나요? memo[i] = min(memo[i-1], memo[i-2]) + cost[i] 계단 오르기 경우의 수 문제가 당신은 계단을 오르고 있습니다. n 꼭대기에 도달하려면 단계가 필요합니다. 매번 당신은 오르 1 거나 2 계단을 오를 수 있습니다. 정상까지 올라갈 수 있는 뚜렷한 방법은 몇 가지입니까? memo[i]=i가 3이라고 한다면 3까지 도달할 수 있는 방법을 저장하는것이고. 계단오르기 최소비용문제에서는 memo[i]=i가 3이라고 한다면 3까지 도달할 수 있는 비용을 저장하는것이라 생각하는데요. 아래는 최소 비용 문제 코드입니다 class Solution(object): def minCostClimbingStairs(self, cost): n = len(cost) if n == 2: return min(cost) # 계단이 두 개라면, 더 싼 비용을 선택 # DP 배열 초기화 memo = {} memo[0] = cost[0] memo[1] = cost[1] # 점화식을 이용하여 최소 비용 계산 for i in range(2, n): memo[i] = min(memo[i-1], memo[i-2]) + cost[i] # 불필요한 비교 제거 # 마지막 계단을 오르지 않아도 되므로, 마지막 두 개 중 최소값 반환 return min(memo[n-1], memo[n-2])
@DATASETS.register_module(force=True) class KittyTinyDataset(CustomDataset): # 커스텀 데이터셋에서 사용할 클래스명 저장. CLASSES = ('Car', 'Truck', 'Pedestrian', 'Cyclist') ##### self.data_root: /content/kitti_tiny/ self.ann_file: /content/kitti_tiny/train.txt self.img_prefix: /content/kitti_tiny/training/image_2 #### ann_file: /content/kitti_tiny/train.txt # annotation에 대한 모든 파일명을 가지고 있는 텍스트 파일을 __init__(self, ann_file)로 입력 받고, 이 self.ann_file이 load_annotations()의 인자로 입력 def load_annotations(self, ann_file): print('##### self.data_root:', self.data_root, 'self.ann_file:', self.ann_file, 'self.img_prefix:', self.img_prefix) print('#### ann_file:', ann_file) cat2label = {k:i for i, k in enumerate(self.CLASSES)} image_list = mmcv.list_from_file(self.ann_file) # 포맷 중립 데이터를 담을 list 객체 data_infos = [] datasets = [build_dataset(cfg.data.train)] 클래스 설정 후(위 박스) 아래박스 코드로 데이터셋을 생성하면 load_annotations의 ann_file에 cfg.data.train.ann_file의 값이 자동으로 들어가는 것으로 이해했습니다. 또한 self.ann_file 값으로는 KittyTinyDataset이 상속받은 CustomDataset의 ann_file 값이 들어가는데 이 또한 데이터셋 생성시 CustomDataset에 cfg.data.train.ann_file의 값이 자동으로 들어가는 것으로 이해했습니다. 이 과정이 맞다면 데이터셋 생성시 self.ann_file과 ann_file에 들어가는 값이 동일한데 두가지 방식 모두 사용하는 이유가 궁금합니다. 과정이 틀렸다면 self.ann_file과 ann_file의 값이 언제 어떤 방식으로 할당되는지 궁금합니다.
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로 저장된다는 것은 이해했습니다! 그냥 시뮬레이션 영상 자체에 대한 질문이었어요! 근데 쓰다 보니 쓸 데 없는 질문인 것 같긴 하네요 😅 그냥 코드 상으로 이해했다면 넘어가도 괜찮겠죠!?? 감사합니다!!
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강의를 보다가 OrderRepository에 대한 테스트는 직접 짜보라는 말씀을 듣고 직접 한번 작성을 해봤습니다. @ActiveProfiles("test") @DataJpaTest class OrderRepositoryTest { @Autowired private OrderRepository orderRepository; @Autowired private ProductRepository productRepository; @DisplayName("원하는 주문 상태를 가진 주문들을 조회한다.") @Test void findOrdersBy() { // given Product product1 = createProduct("001", HANDMADE, SELLING, "아메리카노", 4000); Product product2 = createProduct("002", HANDMADE, HOLD, "카페라떼", 4500); Product product3 = createProduct("003", HANDMADE, STOP_SELLING, "팥빙수", 7000); productRepository.saveAll(List.of(product1, product2, product3)); Order order1 = createOrderWithOrderStatus(List.of(product1, product2), LocalDateTime.now(), PAYMENT_COMPLETED); Order order2 = createOrderWithOrderStatus(List.of(product3), LocalDateTime.now().minusDays(1), PAYMENT_COMPLETED); Order order3 = createOrderWithOrderStatus(List.of(product1, product2, product3), LocalDateTime.now().plusDays(1), PAYMENT_COMPLETED); orderRepository.saveAll(List.of(order1, order2, order3)); // when List<Order> orders = orderRepository.findOrdersBy( LocalDateTime.now().minusDays(1), LocalDateTime.now().plusDays(1), PAYMENT_COMPLETED ); // then assertThat(orders).hasSize(2) .extracting("orderStatus", "totalPrice", "registeredDateTime") .containsExactlyInAnyOrder( tuple(PAYMENT_COMPLETED, 8500, order1.getRegisteredDateTime()), tuple(PAYMENT_COMPLETED, 15500, order3.getRegisteredDateTime()) ); } private Order createOrder(List<Product> products, LocalDateTime registeredDateTime) { return Order.create(products, registeredDateTime); } private Order createOrderWithOrderStatus(List<Product> products, LocalDateTime registeredDateTime, OrderStatus status) { Order order = createOrder(products, registeredDateTime); order.updateOrderStatus(status); return order; } private Product createProduct(String productNumber, ProductType productType, ProductSellingStatus sellingStatus, String name, int price) { return Product.builder() .productNumber(productNumber) .type(productType) .sellingStatus(sellingStatus) .name(name) .price(price) .build(); } } 이런 식으로 작성을 하였는데 제가 궁금한 점은 createProduct는 대부분의 테스트 클래스에서 사용되는데 하나의 static 클래스와 같이 외부로 분리하는게 좋지 않을까 라는 생각을 해봤습니다. 저는 Order 클래스의 상태 변경을 위해서 updateOrderStatus라는 메소드를 생성 하였는데 (아직 해당 강의를 끝까지는 보지 않고 강의를 보기전에 먼저 테스트 코드를 작성 해보고 있습니다) 이런 식으로 테스트를 위해서 메소드를 생성 하는 경우도 괜찮을까요? 제가 작성한 코드의 given 절이 너무 길어지는 느낌을 받았습니다. 현재는 order와 product를 생성 하는 정도이지만 더 복잡한 로직을 생성 할 경우 given이 너무 길어 지는것에 대한 해결 방안이 있을까요? 최대한 구글을 사용하여 찾아는 보았지만 우빈님의 생각도 궁금하여 여쭤보았습니다! 긴 글 읽어주셔서 감사합니다 🙂
통합 테스트 돌리는 중에 java.lang.RuntimeException: java.net .URISyntaxException: Expected scheme-specific part at index 10: localhost: 이런 에러가 나서 헤매고 있습니다 ㅜㅜ 노션이랑 강의 다시 돌려보면서 틀린 부분 찾고 있는데 없는 것 같고요 scheme문제라고 해서 properties파일을 aws.endpoint=localhost:4566 이거 에서 aws.endpoint=http://localhost:4566 요걸로 바꿔도 에러가 발생하네요 어떻게 해결해야하나요?
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 사실상 같은코드긴 한데, 혹시나해서 검증받고싶어서..
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 테스트 환경이 다르면 스프링을 새로 띄워야 된다고 하셨는데, 여기서 테스트 환경이란게 테스트 클래스마다 의존 관계를 주입 받는 클래스가 하나라도 달라지면 스프링이 새로 뜨게 되는 건가요??