안녕하세요 저번 달에 실기시험 보고 온 수강생입니다. 평소에는 train_test_split에서 test_size를 0.2로 했는데 시험장에서 무슨 바람이 분 건지 test_size를 0.1로 하고 왔습니다. 이것 때문에 점수가 10점이 깎일 수도 있을까요? 이외에는 랜덤포레스트 분류 모델 정석 코드 그대로 실행, 제출하고 왔습니다. 2유형만 40점 나오면 넉넉하게 합격일 것 같은데 괜히 불안해지네요..
현재 "신규 Blog 글 생성하기 - 01" 강의를 수강 중입니다. 강의 중에, 쿼리의 commit() 실패시 rollback()이 자동으로 수행된다고 말씀 하셨는데, 코드상에 with를 사용한 것도 아니고, context_get_conn()의 에러 발생시 rollback() 호출도 하지 않는데 rollback()이 자동으로 수행되는게 맞는가요? close를 하면 자동으로 rollback() 된다고 하시는데 close는 성공시에도 호출하는 것으로 코드를 이해하고 있습니다. insert, update의 성공시에도 rollback()이 되는게 맞는지도 알고 싶습니다.
안녕하세요! 강사님 몇달 전에 듣고 복습중인데요 몇달 전에 들었을때, 이렇게 잘 db를 생성했었습니다. 그리고 vi docker-compose.yaml 아래와 같이 수정하였지만 적용이 안되네요...ㅠㅠ 그리고 이전에 생성했던 게 그대로 실행되고 있습니다...! 당연히 dags_python_with_postgres.py 실행하면 아래와 같이 connection 오류가 발생하구요... 혹시 해당 문제 어떻게 해결해야할 지 알 수 있을까요?!
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 1-9 알고리즘 더 풀어보기 (1) 2. 어려움을 겪는 부분 문제의 조건이 모든 연산은 왼쪽에서 순서대로 이루어진다. 라고 되어있어, 연산을 해야하는 순간에 가장 최대가 될 수 있는 연산만 골라서 계산한다 라고 떠올려보았습니다. 그렇다면 해당 문제를 greedy로 생각해봐도 괜찮을까요? 아직 진도 초반이지만, 평소 코테 문제를 볼 때 어느 부분에 힌트를 잡고 어떤 알고리즘으로 풀어야하는지에 대해 감이 없는 상태라서 이런 문제들(연산이 순서대로 된다던지, 거스름돈 문제처럼 단위가 결정된다던지)은 greedy로 보면 되는지 여쭙고싶습니다. 아래는 풀이한 코드입니다. def find_max_plus_or_multiply(array): answer = array[0] for n in range(1,len(array)): if answer + array[n] > answer * array[n]: answer += array[n] else: answer *= array[n] return answer result = find_max_plus_or_multiply print("정답 = 728 현재 풀이 값 =", result([0,3,5,6,1,2,4])) print("정답 = 8820 현재 풀이 값 =", result([3,2,1,5,9,7,4])) print("정답 = 270 현재 풀이 값 =", result([1,1,1,3,3,2,5]))
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 1챕터 7강 (공간 복잡도 판단하기) 2. 어려움을 겪는 부분 1-7 강에서 시간 복잡도 설명을 해주시면서 아래 코드들을 직접 array 길이의 값인 26을 대입하여 비교해주셨는데요, 사실상 첫 번째 코드는 이중 for문이므로 O(N^2)이고, 두 번째 코드는 for문을 각각 1개씩 썼기때문에 O(N)라 시간복잡도면에서 큰 차이가 나지않나해서요 강의에서는 직접 숫자를 대입한 후에 첫 번째 코드와 두 번째코드는 N^2에 비해 효율에 있어 차이가 없다고 말씀하셔서 어디 부분에 제가 혼동이 오는지 궁금하여 질문드립니다! for alphabet in alphabet_array: # alphabet_array 의 길이(26)만큼 아래 연산이 실행 occurrence = 0 # 대입 연산 1번 실행 for char in string: # string 의 길이만큼 아래 연산이 실행 if char == alphabet: # 비교 연산 1번 실행 occurrence += 1 # 대입 연산 1번 실행 if occurrence > max_occurrence: # 비교 연산 1번 실행 max_alphabet = alphabet # 대입 연산 1번 실행 max_occurrence = number # 대입 연산 1번 실행 for char in string: # string 의 길이만큼 아래 연산이 실행 if not char.isalpha(): # 비교 연산 1번 실행 continue arr_index = ord(char) - ord('a') # 대입 연산 1번 실행 alphabet_occurrence_list[arr_index] += 1 # 대입 연산 1번 실행 max_occurrence = 0 # 대입 연산 1번 실행 max_alphabet_index = 0 # 대입 연산 1번 실행 for index in range(len(alphabet_occurrence_list)): # alphabet_array 의 길이(26)만큼 아래 연산이 실행 alphabet_occurrence = alphabet_occurrence_list[index] # 대입 연산 1번 실행 if alphabet_occurrence > max_occurrence: # 비교 연산 1번 실행 max_occurrence = alphabet_occurrence # 대입 연산 1번 실행 max_alphabet_index = index # 대입 연산 1번 실행
안녕하세요! 강의 잘 듣고 있습니다 공부를 하다가 오래 고민해도 이해가 안되는 부분이 생겨서 질문 처음 남겨봅니다~ 침몰하는 타이타닉 (그리디) 문제에서 예를 들어 무게가 100 90 80 80 80 80 40 30 20 10 인 10명의 사람들을 무게 한도가 140인 구명보트에 태울때 강사님 풀이 대로면 100인 사람과 10 인 사람을 태우고 90 인 사람과 20인 사람을 태우는 방식으로 시작해서 (100,10) (90,20) (80,30) (80, 40) (80) (80) 이렇게 6개의 구명보트에 사람을 태우는데 저는 100인 사람과 40인 사람을 먼저 태워야한다고 생각을 했습니다. 뭔가 강사님 풀이대로 100인 사람과 10 인 사람을 먼저 태우면 80 인 사람이 혼자 타게 되는데 100이 40과 함께 타면 80 인 사람이 10 인 사람과 같이 탈 수 있으니 80은 혼자 타지 않아도 되서 cnt 가 최소가 되는게 아닌가 생각했습니다. ( 즉 100 일떄 140 - 100 은 40 이니 40보다 작은 수 중에서 가장 큰 값을 구하는 방식으로 풀었습니다 이중 반복문을 사용합니다 (100, 40) (90, 20) (80, 20) (80, 10) (80) (80) ) 제가 제 방식, 강사님 방식으로 5시간정도 시뮬레이션 해 본 바로는 결국 결국 cnt는 같았습니다 그런데 왜 같은지 논리적으로는 이해할 수가 없어요.. ㅠㅠ 논리적으로 왜 같은지 혹시 설명해주실 수 있으실까요..
직장을 다니면서 자격증 시험을 준비했는데, 하필 실기 시험날 타 지역 출장이 있어 응시를 하지 못했습니다..ㅠㅠ 일 하면서 틈틈히 강의 듣고 했는데 너무 아쉽네요 ㅎ 지금 필기 유효기간도 만료되어서 내년에 다시 준비를 해야하는데, 실기 강의가 내년 5월 만료더라구요 . 혹시 필기 대비하는 강좌나 25년 대비 강좌를 계획중이신게 있으실까요? 있다면 패키지로 묶어서 구매하고 싶은데, 기존 수강생 할인이나 쿠폰같은게 있으면 좋을 것 같아서요 .(양심이 없어 죄송합니다ㅠㅠ) 그리고 필기 공부하면서 실기를 같이 병행(실기강좌중 개념을 다루는 부분)하는게 좋은지도 궁금합니다!
안녕하세요 선생님 전국 평균 분양가격(2013~2015년 8월까지)데이터는 너무 옛날거라 쓰기가 좀 그래서요 혹시 최신버전이나 공공데이터에서 다운 받아서 쓸 수 있는 정보가 있을까요?? 현재 2023 09~202408까지 데이터로 진행하고 싶은데 기존 데이터로 따로 월이랑 연도만 따로빼서 파일을 만드신건지.. 그렇다고 하면 규모구분 칼럼에서 어떤게 기준점인지 궁금해요 ...
코랩에서 910 실습파일 실행 시 skimage.data_dir 경로에 이미지 파일이 없는것으로 보입니다. FileNotFoundError Traceback (most recent call last) <ipython-input-31-48f15de4b83a> in <cell line: 9>() 7 8 # skimage의 데이터 디렉토리에서 .png 또는 .jpg로 끝나는 모든 파일을 반복하여 처리합니다. ----> 9 for filename in [filename for filename in os.listdir(skimage.data_dir) if filename.endswith(".png") or filename.endswith(".jpg")]: 10 # 파일명에서 확장자를 제거하여 이미지의 이름을 얻습니다. 11 name = os.path.splitext(filename)[0] FileNotFoundError: [Errno 2] No such file or directory: '/root/.cache/scikit-image/0.24.0/data
안녕하세요 선생님 섹션 11의 예외 처리 강의 중 [두 가지 예외 종류] 파트를 공부하다가 궁금증이 생겨서 질문드립니다. Checked Exception과 Unchecked Exception을 Exception 클래스의 파생이냐, 혹은 RuntimeException의 파생이냐에 따라 분류하는 것으로 설명해주신 것으로 이해했는데요. 그런데 1.4v 교안 기준으로 305페이지에(강의 기준으로 2분 32초) Unchecked exception 열에서 사례를 들어주신 SQLException, IOException, ClassNotFoundExcpetion은 jdk를 확인해보니 Exception의 파생이었습니다. (ReflectiveOperationException은 Exception 클래스의 파생입니다.) jdk 코드를 기준으로 보면 SQLException, IOException, ClassNotFoundExcpetion은 Checked Exception에 해당하는 것으로 보이는데, 선생님께서 해주신 설명과 다른 부분이 있어서 혼동이 오는데 어떤게 맞는건지요? 그리고 강의 내용을 바탕으로 좀 더 공부를 해보니 제가 이해한 바는 아래와 같습니다. 혹시 잘못 이해한 부분이이 있을까요? 1. Checked, Unchecked Exception 모두 예외 발생은 Runtime에서 이루어진다. 2. 파일 I/O, DB 접근은 실행 환경에서 자주 발생할 수 있는 문제이기 때문에, 개발자가 이를 예상하고 처리하도록 컴파일 시점에서 컴파일러에 의해 예외처리가 강제된다. -> SQLException, IOException 예외가 Checked Exception인 이유 감사합니다.
안녕하세요 선생님~ [JVM이 문자열 상수를 관리하는 구조] 강의를 듣던 중에 이해가 잘 안되는 부분이 있어서 질문드립니다. 제가 기존에 알고 있던 내용과 더불어 강의를 통해 이해한 바로는 1. "런타임 상수 풀"은 문자열 리터럴 객체가 아닌 문자열 리터럴의 심볼릭 참조를 저장하는 곳, 즉 실제 객체는 저장되지 않음 - 물론 여러 다른 심볼릭 참조 또한 저장됨 2. String s1 = "Hello"처럼 리터럴로 선언된 String instance는 Heap 메모리 영역의 "문자열 상수 풀"에 저장 3. String s3 = new String("Hello")는 객체로, Heap 메모리 영역이면서 문자열 상수 풀이 "아닌" 영역에 저장. 즉, 문자열 상수 풀에 독립적 4. 따라서 문자열 상수 선언(String s1 = "Hello") 또는 intern() 메서드 호출할 경우에만 문자열 상수 풀에 문자열 저장이 발생 위의 이해를 전제로 질문은 아래와 같습니다. [12분 22초]쯤 선생님께서 문자열 상수 풀에서 문자열을 조회할 때, 먼저 Runtime Constant Pool 내에 문자열 리터럴을 조회하고, 있으면 바로 반환한다고 하셨는데요. 1. 런타임 상수 풀에서만 리터럴을 조회하고 끝나는 절차가 맞는지요? 혹은 "런타임 상수 풀"에 저장된 문자열 리터럴의 심볼릭 참조를 타고 "문자열 상수 풀"의 문자 리터럴 객체를 탐색하는 것까지가 맞는 처리 과정인지요? -> 저는 후자가 맞다고 생각하고 있습니다. 2. intern() 호출 시, 런타임 상수 풀 내의 "찾고자 하는 문자열 리터럴의 심볼릭 참조"가 존재하지 않는다면, JVM이 문자열 객체를 생성하여 Heap의 문자열 상수 풀에 저장하나요? 혹은 Heap 영역이지만 문자열 상수 풀이 아닌 영역에 저장되나요? -> 저는 intern() 호출로 생성된 객체는 항상 문자열 상수 풀에 저장되는 걸로 알고 있습니다. 3. 그리고 2번 질문과 연관된 질문인데, 수업자료의 예제에서 public class Main { public static void main(String[] args) { String s1 = "Hello"; String s2 = "Hello"; System.out.println(s1 == s2); String s3 = new String("World"); String s4 = s3.intern(); System.out.println(s3 == s4); System.out.println("World" == s3); // 1번 System.out.println("World" == s4); // 2번 } } 18분 51초 쯤 선생님께서 말씀하시기를 s3.intern()으로 인해 "World" 리터럴이 Runtime constant pool에 생긴다고 하셨는데, Runtime constant Pool은 오직 심볼릭 참조만 가지고 있는거 아닌가요? Runtime constant pool는 클래스 로드 시 정적으로 생성된 심볼릭 참조를 관리할 뿐이고, 동적으로 업데이트 되는건 아니지 않나요? 따라서 s3.intern()으로 인해 "World" 리터럴은 Runtime Constant Pool이 아니라 Heap 영역의 문자열 상수 풀에 들어가야하는 것이 아닌지요? 마지막으로, [System.out.println("World" == s3); // 1번] 여기서 false가 나온 이유는 new로 동적 할당된 "World"은 문자열 상수 풀이 아닌 Heap 영역에 저장되기 때문에 s3 참조자는 문자열 상수 풀이 아닌 그 외 Heap 영역의 String instance를 바라보고 있고, s4 참조자는 intern() 함수로 인한 호출로 문자열 상수 풀에 생긴 객체이기 때문에 false가 나온게 아닌지요? 제가 잘못 알고 있는 상태에서 잘못된 질문을 길게 한건가 싶어서 죄송스럽네요. 늘 좋은 강의 감사합니다!
"2-6. 필드속성 수정하기" 중 현재 커서위치의 필드이름 수정하기 : SetCurFieldName 관련입니다. (아래 스크린샷 참고) 강의 본문을 보면, 첨부된 실습파일인 "필드명없음.hwp"이 누름틀은 네 개 들어가 있지만, 필드명이 정의되어 있지 않은 상태입니다. 라고 설명되어 있는데요. "필드명없음.hwp"를 다운로드 받아서 열어보면 강의 본문과 다릅니다. 즉, 필드 4개에 필드명이 모두 정의된 상태입니다. 또한, 강의 본문에는, "필드명없음.hwp" 상 내용이 이름 : 여기에 입력 성별 : 여기에 입력 생일 : 여기에 입력 취미 : 여기에 입력 이라고 기재되어 있지만, "필드명없음.hwp"를 열어보면 이름 : 이름 성별 : 성별 생일 : 성별 취미 : 성별 로 확인됩니다. 잘못 첨부하신 거라면, 첨부파일과 강의 본문 간 일치되도록 정정해 주시면 혼동을 방지하는데 큰 도움이 될 거 같습니다. 혹여나 "예시문서는 아래와 같습니다." 라고 기재하시면서 실습이 완료된 파일을 첨부해 주신 의도라면, 수강생의 입장에서는 해당 위치에 실습 진행 전 파일을 첨부해 주시는 게 더 이해에 더 매끄러울 거 같습니다. 아니면, 해당 첨부파일이 "실습이 완료된 이후의 상태"라는 언급을 해주시면 정확할 거 같습니다. 아울러, hwp.SetCurFieldName(Field="이름", Direction="이름입력", memo="이름메모") 코드를 실행할 때는, "필드명 정의되어 있지 않은 누름틀에서 캐릿이 깜빡이는 상태에서 위 코드를 실행"하면 된다는 설명을 한 줄 더 넣어주시면 어떤 설명을 하고 계신 건지 더 정확히 이해할 수 있을 거 같습니다. ※ 요 부분 실습해보고 말씀드리는 것입니다. 감사합니다.
안녕하세요. 시험결과를 기다리는 동안 아나콘다를 사용해서 추가적으로 파이썬을 연습해 볼까 하고 있습니다만, 아나콘다 설치 실패가 나와서 혹시 이부분도 도움을 받을 수 있을까 하여 글을 남겨 봅니다. 추가적으로 말씀드리자면 사용자 파일에 있는 anaconda3파일을 휴지통에 넣었는데도 같은 에러가 발생하고 있습니다. 그리고 터미널을 통해서 rmdir을 통해서 파일을 지우려고 시도해봤는데도 잘 되지 않습니다. 저는 파이썬과 터미널 완전 입문자 입니다. 이것저것 해봐도 안되서 도움을 요청드립니다. (저는 mac유저 입니다) 요
안녕하세요 다른 쥬피터랩에서 실행하고 있는데요.. import koreanize_matplotlib 진행을 했는데도... import koreanize_matplotlib import matplotlib.pyplot as plt import seaborn as sns import pandas as pd from pandas.plotting import register_matplotlib_converters # 그래프에 retina display 적용 %config InlineBackend.figure_format = 'retina' register_matplotlib_converters() # Matplotlib에서 날짜 데이터를 처리하기 위한 변환기 등록 # 데이터 예시 (실제 사용 시 'data' DataFrame이 필요합니다) data = pd.DataFrame({ '등록일시': ['2023-01-01', '2023-02-01', '2023-03-01'], '참가업체수': [10, 15, 20] }) data['등록일시'] = pd.to _datetime(data['등록일시']) # '등록일시'를 기준으로 데이터 정렬 data_sorted = data.sort_values('등록일시') # 시간에 따른 '참가업체수' 선 그래프 그리기 plt.figure(figsize=(12, 6)) # 그래프 크기 설정 sns.lineplot(data=data_sorted, x='등록일시', y='참가업체수') # 선 그래프 생성 plt.title('시간에 따른 참가업체수 분석') # 그래프 제목 설정 plt.xlabel('날짜') # x축 라벨 설정 plt.ylabel('참가업체수') # y축 라벨 설정 plt.xticks(rotation=45) # x축 눈금 라벨 회전 plt.tight_layout() # 그래프 레이아웃 조정 # 그래프 표시 plt.show ( ) 이런 에러가 계속 나서요.. 혹시 어떻게 진행하면...될까요 ㅜㅜ