묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
jenckins docker + python 연동 문의
젠킨슨 도커를 원도우 서버 위에 설치 했습니다.설치 후 젠킨슨 도커와 연동하여 pytest 및 python를 사용하고 싶은 데도커에 설치해야 하는 지 아니면 원도우 서버에 설치해도 되는 지 궁금해서 문의합니다. 해당 강의를 통해 jenckins + github + python selenium grid 연동 환경을 구성하려고 합니다.원도우 서버에 jenckins _docker 설치 후 원도우 서버에 python 및 selenium 을 설치 했는 데 실행이 원활하지 않아 문의합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
엑세스가 거부되었습니다.
<input(2-1) : 사용자가 원하는 값을 입력해봐요.> 실습 중 문제가 발생했습니다. 어떻게 해결하나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 교안 공부하다가 ..
안녕하세요. 알고리즘 공부를 위해 강의를 구매했고 C++ 알고리즘 교안을 통해 공부 중입니다.교안을 보다보면 제 머리가 조금 부족해서 내용 이해가 정확히 안가는 부분도 있고, 내용이 적지 않다 보니 1주일 공부하다보면 앞에 내용이 기억나지않아 뒷 부분에서 이게 무슨 소리인가라는 생각이 자주 듭니다. 이럴 때, 기억나지않아도 적당히 이해하면서 교안을 뒤로 넘기며 계속 공부를 이어나가야 할지 앞에 내용을 다시 공부하고 진행해야 할 지 모르겠습니다. 교안을 완벽하게 숙지(이해, 암기)하고 강의를 듣고 공부를 해 나가야할지, 아니면 모든 내용이 기억나지 않고 완벽하게 숙지되지 않더라도 앞으로 나아가야할지 어느 방법을 추천하시는지 조언해주시면 감사하겠습니다. 감사합니다!
-
해결됨문과생이 가르쳐 주는 퍼블리싱 - 클론코딩
제이쿼리 연결 질문드립니다.
HTML 구조설계까지 끝내고 css 스타일 입히기 과정을 듣고 있는데 선생님 강의를 보면 슬라이드 자동 효과가 적용되고 .gnb 호버하면 서브메뉴가 내려오는데 저는 적용이 안되서 질문드립니다.@charset "utf-8"; @import url("./common.css"); /* layout */ header { position: relative; z-index: 9; height: 156px; } header .header { position: relative; z-index: 1; width: 1200px; margin: 0 auto; } header h1 { position: absolute; left: 0; top: 17px; width: 194px; height: 45px; } header h1 a { display: block; height: 45px; font-size: 0 !important; background: url(../images/logo.png) no-repeat 0; } header .util { position: absolute; right: 0; top: 39px; } header .util .btn_menu { position: relative; width: 20px; height: 16px; /* background-color: red; */ } header .util .btn_menu span { position: absolute; top: 0; bottom: 0; margin: auto 0; left: 0; width: 20px; height: 2px; background-color: #666; font-size: 0; } header .util .btn_menu:before { position: absolute; top: 0; left: 0; content: ""; width: 20px; height: 2px; background-color: #666; font-size: 0; } header .util .btn_menu:after { position: absolute; bottom: 0; left: 0; content: ""; width: 20px; height: 2px; background-color: #666; font-size: 0; } header .util button ~ button { margin-left: 31px; } header .util .btn_login { background: url(../images/ic_login.png) no-repeat 0 50%; padding-left: 29px; } header .util .btn_logout { background: url(../images/ic_login.png) no-repeat 0 50%; padding-left: 29px; } header h2 { font-size: 0; } header .gnb { margin-top: 104px; } /* gnb 메뉴 */ header .gnb > ul { display: flex; justify-content: space-between; font-size: 20px; font-family: "nanums"; } header .gnb ul ul { overflow: hidden; height: 0; margin-top: 20px; font-size: 17px; } header .gnb ul ul a:hover { color: #f68b12; } header .gnb ul ul a { transition: all 0.2s ease-in-out; } header .gnb ul ul li ~ li { margin-top: 16px; } header::after { content: ""; position: absolute; top: 156px; width: 100%; height: 0; background-color: white; box-shadow: 0 3px 3px rgba(0, 0, 0, 10%); transition: all 0.2s ease-in-out; } header .openGnb::after { height: 180px; } header .openGnb .gnb ul ul { height: auto; overflow: visible; } header .openGnb .over > a:before { width: 100%; } header .gnb .depth1 > a { position: relative; text-align: center; display: block; height: 51px; /* background-color: red; */ } header .gnb .depth1 > a::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; margin: 0 auto; width: 0%; height: 3px; background-color: #f68b12; transition: all 0.2s ease-in-out; } /* main */ .dm_body .visualSlider .item { height: 597px; } .dm_body .visualSlider .txt_g { width: 1200px; margin: 170px auto 0; line-height: 82px; color: #fff; font-family: "nanum"; } .dm_body .visualSlider .txt_g p:nth-child(1) { font-size: 36px; } .dm_body .visualSlider .txt_g p:nth-child(2) { font-size: 72px; } <!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8" /> <title>러빙코드 실습 메인 화면</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script src="./resources/js/jquery.min.js"></script> <script src="./resources/js/slick.js"></script> <script src="./resources/js/ui.js"></script> <link href="./resources/css/style.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="skiptoContent"> <a href="http://#dMbody">본문 바로가기</a> </div> <header> <div class="header"> <h1><a href="main.html">biensoft</a></h1> <div class="util"> <button class="btn_login">로그인</button> <!-- <button class="btn_logout">로그아웃</button> --> <button class="btn_menu"><span>전체메뉴</span></button> </div> <h2>주 메뉴</h2> <nav class="gnb"> <ul> <li class="depth1"> <a href="">교육기관 소개</a> <ul> <li><a href="">원장 인사말</a></li> <li><a href="">교육기관 역사</a></li> <li><a href="">교육기관 소개</a></li> </ul> </li> <li class="depth1"> <a href="">교육시청</a> <ul> <li><a href="">인기순 강좌 신청</a></li> <li><a href="">대상별 강좌 신청</a></li> <li><a href="">분야별 강좌 신청</a></li> <li><a href="">기간별 강좌 신청</a></li> </ul> </li> <li class="depth1"> <a href="">강사뱅크</a> <ul> <li><a href="">강사 보기</a></li> <li><a href="">강사 신청</a></li> </ul> </li> <li class="depth1"> <a href="">알림마당</a> <ul> <li><a href="">공지사항</a></li> <li><a href="">이벤트</a></li> <li><a href="">자주하는 질문</a></li> </ul> </li> <li class="depth1"> <a href="">참여마당</a> <ul> <li><a href="">강의 리뷰</a></li> <li><a href="">묻고 답하기</a></li> </ul> </li> <li class="depth1"><a href="">MY 페이지</a></li> </ul> </nav> </div> </header> <div id="dMbody" class="dm_body"> <div class="col_a"> <div class="visualSlider"> <div class="item" style=" background: url(./resources/images/tmp/visual1.jpg) no-repeat 50% 0; background-size: cover; "> <div class="txt_g"> <p>살아 있는 배움! 행복학습</p> <p>커피바리스타</p> </div> </div> <div class="item" style=" background: url(./resources/images/tmp/visual2.jpg) no-repeat 50% 0; background-size: cover; "> <div class="txt_g"> <p>살아 있는 배움! 행복학습</p> <p>요가</p> </div> </div> <div class="item" style=" background: url(./resources/images/tmp/visual3.jpg) no-repeat 50% 0; background-size: cover; "> <div class="txt_g"> <p>살아 있는 배움! 행복학습</p> <p>캘리그라피</p> </div> </div> </div> </div> <!--col_a--> <section class="col_b"> <div class="box"> <ul class="tabs"> <li><a href="#view1">인기순 강좌</a></li> <li><a href="#view2">대상별 강좌</a></li> <li><a href="#view3">분야별 강좌</a></li> </ul> <div class="views" id="view1"> <h2>인기순 강좌</h2> <ul> <li> <a href="#"><img src="./resources/images/tmp/thum1.jpg" alt="필라테스" />필라테스</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum2.jpg" alt="커피바리스타" />커피바리스타</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum3.jpg" alt="캘리그라피" />캘리그라피</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum4.jpg" alt="풍경사진" />풍경사진</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum5.jpg" alt="서양화" />서양화</a> </li> </ul> </div> <div class="views" id="view2"> <h2>대상별 강좌</h2> <ul> <li> <a href="#"><img src="./resources/images/tmp/thum1.jpg" alt="필라테스" />필라테스</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum2.jpg" alt="커피바리스타" />커피바리스타</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum3.jpg" alt="캘리그라피" />캘리그라피</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum4.jpg" alt="풍경사진" />풍경사진</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum5.jpg" alt="서양화" />서양화</a> </li> </ul> </div> <div class="views" id="view3"> <h2>분야별 강좌</h2> <ul> <li> <a href="#"><img src="./resources/images/tmp/thum1.jpg" alt="필라테스" />필라테스</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum2.jpg" alt="커피바리스타" />커피바리스타</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum3.jpg" alt="캘리그라피" />캘리그라피</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum4.jpg" alt="풍경사진" />풍경사진</a> </li> <li> <a href="#"><img src="./resources/images/tmp/thum5.jpg" alt="서양화" />서양화</a> </li> </ul> </div> </div> </section> <!--col_b--> <section class="col_c"> <div class="colc_a"> <ul class="tabs"> <li><a href="">공지사항</a></li> <li><a href="">자주하는 질문</a></li> </ul> <div class="board_list" id="notice"> <h2>공지사항</h2> <ul> <li> <a href="#"><i>NEW</i>필라테스 12월 프로그램 할인 이벤트! 모집안내합니다.</a><span>2022.10.01</span> </li> <li> <a href="">국내 국제 바리스타 자격까지 완벽 교육 지원합니다. 하반기 바리스타 교육생 모집중입니다. 바리스타 교육생 모집 중입니다.</a><span>2022.10.01</span> </li> <li> <a href="">손글씨를 아름답게! 켈리그라피 수강생 모집 중!</a><span>2022.10.01</span> </li> <li> <a href="">세상의 모든 풍경을 사진속에! 풍경사진 초급과정 모집 안내합니다.</a><span>2022.10.01</span> </li> <li> <a href="">취미에서 부터 전문 화가 양성까지! 개인별 맞춤 과정 프로그램 안내합니다.</a><span>2022.10.01</span> </li> </ul> </div> <div class="board_list" id="qna"> <h2>자주하는 질문</h2> <ul> <li> <a href="">온라인 영상이 작동이 잘되요.</a><span>2022.10.01</span> </li> <li> <a href="">결제신청 후 확인은 어디서 하나요?</a><span>2022.10.01</span> </li> <li> <a href="">취소/환불 절차를 알고 싶어요</a><span>2022.10.01</span> </li> <li> <a href="">세상의 모든 풍경을 사진속에! 풍경사진 초급과정 모집 안내합니다.</a><span>2022.10.01</span> </li> <li> <a href="">취미에서 부터 전문 화가 양성까지! 개인별 맞춤 과정 프로그램 안내합니다.</a><span>2022.10.01</span> </li> </ul> </div> </div> <div class="colc_b"> <div class="event_list"> <h2>이벤트</h2> <div class="eventSlider"> <div class="item"> <a href=""><img src="./resources/images/tmp/event1.jpg" alt="2022년 하반기 교육강좌 개설안내 2022.11.4(목)" /></a> </div> <div class="item"> <a href=""><img src="./resources/images/tmp/event2.jpg" alt="2022년 하반기 교육강좌 개설안내 2022.11.4(목)" /></a> </div> <div class="item"> <a href=""><img src="./resources/images/tmp/event3.jpg" alt="2022년 하반기 교육강좌 개설안내 2022.11.4(목)" /></a> </div> </div> </div> </div> </section> <!--col_c--> <section class="col_d"> <div class="box"> <h2>바로가기 링크</h2> <p class="txt">삶이 있는 배움!<span>행복학습!</span></p> <ul> <li class="link1"> <a href="#"><strong>교육신청</strong> <p>다양한 교육 프로그램을<br />신청해 보세요.</p> </a> </li> <li class="link2"> <a href="#"><strong>강사뱅크</strong> <p>깅의 중인<br />강사들의 현황파악을 해보세요.</p> </a> </li> <li class="link3"> <a href="#"><strong>묻고 답하기</strong> <p>궁금한 어떤 것이든<br />물어보세요.</p> </a> </li> <li class="link4"> <a href="#"><strong>온라인 동영상 강좌</strong> <p>온라인 비대면 강좌로<br />편하게 교육받으세요.</p> </a> </li> </ul> </div> </section> <!-- col_d--> </div> <footer> <div class="footer"> <ul class="foot_menu"> <li><a href="">개인정보 처리방침</a></li> <li><a href="">이용약관</a></li> <li><a href="">이메일수집거부</a></li> <li><a href="">사이트맵</a></li> </ul> <div class="family_site"> <button type="button" class="select">패밀리 사이트</button> <ul class="option"> <li><a href="#" target="_blank">사이트1</a></li> <li><a href="#" target="_blank">사이트2</a></li> <li><a href="#" target="_blank">사이트3</a></li> <li><a href="#" target="_blank">사이트4</a></li> <li><a href="#" target="_blank">사이트5</a></li> <li><a href="#" target="_blank">사이트6</a></li> </ul> </div> <address> 서울 강남구 학동로<br /> Tel.02-1234-5678 </address> <p class="copyright">COPYRIGHT(C) ALL RIGHT RESERVED.</p> </div> </footer> </body> </html>
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 이런 풀이도 괜찮을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.let input = `7 128 460 603 40 521 137 123`.split("\n"); let num = Number(input[0]); let arr = input[1].split(" "); function solution(arr) { let answer; let sum; let sumMax = 0; let maxNum = 0; for (let i = 0; i < num; i++) { sum = arr[i].split("").reduce((acc, cur) => { return Number(acc) + Number(cur); }, 0); if (sum > sumMax) { sumMax = sum; maxNum = arr[i]; answer = arr[i]; } if (sum === sumMax) { answer = Math.max(maxNum, arr[i]); } } return answer; } console.log(solution(arr));이런식으로 한번 풀어봤는데 이런 풀이도 괜찮을걸까요..!?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
안녕하세요 401오류 질문드려요
안녕하세요 캡틴판교님 저번주 금요일에 학습노트 게시글 받기까지 된다음 오늘 다시 진행해보니 오류가 떠서 질문드립니다.swagger에서 로그인 후 토큰을 auth해주어서 post한 후에 201코드를 받았는데실제 서버에서 구동해보니 요청 payload는 잘 가는데 401오류와 함께 토큰이 필요하다고 합니다 어떻게 해야할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
sdk 오류 문의드립니다
인녕하세요 안드로이드 라이센스 추가시 오류가 나는데 해결방법 문의드립니다 기존에 c:/app/ 경로에 안드로이드 스튜디오가 깔려있었는데요xl예물레이터는 실행시 오류가나서 일단 다른 디바이스로 실행 시켰습니다.문의내용: 안드로이드 라이센스 추가시 오류1.sdk 매니저에서 영상에 나온 항목 설치(Android SDK Command-line Tools 등등)2.환경변수 설정위 두가지 내용들 다 적용된것도 확인했는데 해결방법을 모르겠습니다확인해봐야할 부분 알려주시면 감사하겠습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
c++ 설치관련문의
교안에서 윈도로 설치할 경우 DevC++을 추천한다고 했습니다. 제가 유니티를 전에 사용하면서 비줄얼스튜디오2022가 이미 설치가 되어있습니다. 이경우에서도 DevC++를 설치하는 것이 나을지 아니면 이미 있는 비주얼스튜디오2022로 사용해도 되는지 각각의 장단점을 문의드립니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Error: Access denied for user 'root'@'localhost' (using password: YES) 에러
아래 질문과 동일한 에러가 발생해서 알려주신 해결책으로 진행했는데...이번에는 다른 문제가 발생했습니다.Error: Access denied for user 'root'@'localhost' (using password: YES)구글링으로 아무리 찾아서 해보아도 해결이 안되고 있습니다.아래 테이블 만들었구요권한문제인가 싶어서 user 테이블의 root 의 authentication_string 을 바꿔도 해쉬값으로 저장되지도 않고...현재는 NULL로 해놓고 있는데 도무지 해결이 되지 않습니다. 도와주세요 ㅠㅠ
-
미해결처음 만난 리액트(React)
Event handler 질문입니다.
변수 handleConfirm의 Arrow function이 실행하는 것은 어떤걸 받아서 무엇을 하는 건가요?prevIsConfirmed이 뭘 하는 녀석인지 모르겠습니다.
-
미해결프레이머를 활용하여 쉽고 간단하게 프로토타입 제작하기
스크롤 기능 사라졌나요?
스크린 크기 늘려야 스크롤이 생기네요피그마랑 똑같아진건가요
-
미해결
[JPA] 다른 컬럼명을 참조하는 연관관계에 대한 궁굼점 (referencedColumnName)
다른 컬럼명을 참조하는 연관관계에 대한 궁굼점 JPA 를 공부하며 궁굼한게 있어 질문 드립니다 !아래와 같은 테이블이 존재한다고 가정한다.QNA 테이블에 존재하는 Q_REG_USER , Q_UPD_USER 는 USER.U_SEQ 이다.이렇게 서로 다른 컬럼명을 참조하고 있을경우 어떻게 대처해야 할지몰라 방법을 찾아본 후referencedColumnName 를 사용해 명시를 해준 후 매핑을 해주니 내가 원하는 결과가 잘 나왔다.하지만 실무에서 실제로 어떻게 쓰이는지 몰라 맞는 방법을 몰라 조언을 구합니다.이런 경우에 이런 식으로 매칭을 시켜주는게 맞는지,또한 어떻게 사용하는지도 알려주시면 감사할 것 같습니다 !
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
수들의 합
해당 코드는 강사님 풀이와 비교했을 때 어떤지 궁금합니다. N, M = map(int, input().split()) list = list(map(int, input().split())) cnt = 0 for i in range(N): sum = list[i] temp = i while True: if sum == M: cnt += 1 break if sum > M: break if temp == N - 1: break temp += 1 sum += list[temp] print(cnt)
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
크롤링 로켓배송 제외
안녕하세요. 문의드립니다.쿠팡 로켓배송 크롤링강의를 보고 쿠팡 1~10(위에 빨간리본상품) 중 로켓배송상품, 광고상품을 빼고 상품의 이름을 가져오고 싶은데요. 강의 보고 어떻게 적용을 해야할지 해매고 있어 문의드립니다.초보라 모르는게 많네요. 도와주세요~
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
스프링부트 3.0.2 querydsl + rest docs + propoerties
스프링부트 3.0.2로 따라하고 계신분들을 위한 공유입니다.queryDSLimplementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api"Spring REST Docsext { asciidocVersion = "3.0.0" }버전을 3.0.0으로 지정application.propertiesspring.h2.console.enabled=true spring.datasource.url=jdbc:h2:mem:test spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password=
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
seeder is not a constructor
yarn seed를 통해 더미데이터를 생성하려 했으나 "seeder is not a constructor" 라는 에러에 마주칩니다. 어느 부분이 잘못됫는지 알아보기 위해 에러코드를 살펴봤으나 제 코드 부분이 아닌 typeorm-extension 부분에서 에러가 나는것 같아 해결하기 어렵습니다.TypeError: seeder is not a constructor at /Users/jinyoung/Desktop/try-own-version/practice-version/node_modules/typeorm-extension/src/seeder/module.ts:122:19 at Generator.next (<anonymous>) at fulfilled (/Users/jinyoung/Desktop/try-own-version/practice-version/node_modules/typeorm-extension/dist/seeder/module.js:5:58) dataSource.ts import dotenv from 'dotenv'; //dataSource에 entity를 입력해줄때는 절대경로면 못찾아온다. 그래서 상대 경로로 써줘야함 import { User } from './src/users/entities/user.entity'; import { DataSource } from 'typeorm'; const mode = process.env.NODE_ENV || 'development'; dotenv.config({ path: process.cwd() + `/.env.${mode}` }); const dataSource = new DataSource({ type: 'mysql', host: 'localhost', port: 3306, database: process.env.DB_DATABASE, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, charset: 'utf8mb4_general_ci', entities: [User], migrations: [__dirname + '/src/migrations/*.ts'], synchronize: true, logging: true, }); export default dataSource; package.json seed부분 설정 "seed": "ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -d ./dataSource.ts" database/seeds/create-initial-data.ts import { User } from '../../users/entities/user.entity'; import { DataSource } from 'typeorm'; import { Seeder, SeederFactoryManager } from 'typeorm-extension'; export class UserSeeder implements Seeder { async run( dataSource: DataSource, factoryManager: SeederFactoryManager, ): Promise<any> { const userRepository = dataSource.getRepository(User); await userRepository.save({ email: 'ggg@gmail.com', firstName: 'sfvs', lastName: 'wdwdwd', nickname: 'hihi', }); } } typeorm-extension 버젼 "typeorm-extension": "^2.4.2", "typeorm": "^0.3.12", 시도해본 내용1. dataSource 생성시 new DataSource({... 중략seed:["create-initial-data.ts 경로"] 추가})2. db 삭제후 다시 생성(생성시 테이블 싱크까지 맞춘후 seed 시도)3. typeorm-extension 버전 문제일까 해서 다운그레이드 시도4. typeorm 0.3대는 유지하고 0.3.11, 0.3.10등 다른 버전으로 시도결과 모두 실패
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
자바스크립트에서는 항상 맨날 힙 구현해서 풀어야했는데..
실시간 정렬해야되는 문제들 보면 거의 무조건 힙구조도 같이 이용해야하는 문제들이여서..자바스크립트로 풀때는 최소 빨라도 3~4분정도는..요로코롬Min이나 Max 힙 구조 만드는데 소요해야하고,class MaxHeap { constructor() { this.heap = [null]; } push(value) { this.heap.push(value); let currentIndex = this.heap.length - 1; let parentIndex = Math.floor(currentIndex / 2); while (parentIndex !== 0 && value > this.heap[parentIndex]) { const temp = this.heap[parentIndex]; this.heap[parentIndex] = value; this.heap[currentIndex] = temp; currentIndex = parentIndex; parentIndex = Math.floor(currentIndex / 2); } } pop() { if (this.heap.length === 1) return; if (this.heap.length === 2) { return this.heap.pop(); } const returnValue = this.heap[1]; this.heap[1] = this.heap.pop(); let currentIndex = 1; let leftIndex = 2; let rightIndex = 3; while ( this.heap[currentIndex] < this.heap[leftIndex] || this.heap[currentIndex] < this.heap[rightIndex] ) { if (this.heap[leftIndex] < this.heap[rightIndex]) { const temp = this.heap[currentIndex]; this.heap[currentIndex] = this.heap[rightIndex]; this.heap[rightIndex] = temp; currentIndex = rightIndex; } else { const temp = this.heap[currentIndex]; this.heap[currentIndex] = this.heap[leftIndex]; this.heap[leftIndex] = temp; currentIndex = leftIndex; } leftIndex = currentIndex * 2; rightIndex = currentIndex * 2 + 1; } return returnValue; } } 심지어 문제 구조에서, 힙에 들어가야하는게 객체요소이면서, 객체의 어떤 Key 값에 따라서 실시간 정렬해야할 경우엔 여기서 또 out of index , key값 더 생각해서, class MinHeap { constructor() { this.heap = [null]; } isEmpty() { return this.heap.length === 1; } _swap(a, b) { [this.heap[a], this.heap[b]] = [this.heap[b], this.heap[a]]; } push(value) { this.heap.push(value); let currentIndex = this.heap.length - 1; let parentIndex = Math.floor(currentIndex / 2); // while (parentIndex !== 0 && this.heap[parentIndex].key > value.key) { this._swap(parentIndex, currentIndex); currentIndex = parentIndex; parentIndex = Math.floor(currentIndex / 2); } } pop() { if (this.isEmpty()) return; if (this.heap.length === 2) return this.heap.pop(); const returnValue = this.heap[1]; this.heap[1] = this.heap.pop(); let currentIndex = 1; let leftIndex = 2; let rightIndex = 3; while ( (this.heap[leftIndex] && this.heap[currentIndex].key > this.heap[leftIndex].key) || (this.heap[rightIndex] && this.heap[currentIndex].key > this.heap[rightIndex].key) ) { if (this.heap[rightIndex] === undefined) { this._swap(leftIndex, currentIndex); currentIndex = leftIndex; } else if (this.heap[rightIndex].key < this.heap[leftIndex].key) { this._swap(rightIndex, currentIndex); currentIndex = rightIndex; } else if (this.heap[rightIndex].key >= this.heap[leftIndex].key) { this._swap(leftIndex, currentIndex); currentIndex = leftIndex; } leftIndex = currentIndex * 2; rightIndex = currentIndex * 2 + 1; } return returnValue; } } 요로코롬 이렇게 힙구조 작성하는데만 4~5분 먹고, 그담 문제 풀이 본격적으로 시작할 수 있습니다..파이썬의 deque 같은경우는 자바스크립트에선 Queue 구조 1분. 먹고왜 사람들이 파이썬 코테로 많이 쓰는지 알겠네요..ㄷㄷ;;import heapq , 단 1초면 모듈 가져오고, 끝이네요.코테에서 import 모듈 제한 없다면 진짜 무조건 파이썬이네요 ;;
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
열부분 슬라이싱 질문
행부분을 temp = board[j][i+5]로 슬라이싱하셨는데열부분은 temp = board[j:j+5][i]로는 슬라이싱이 안되나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DI 이해도 확인
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 DI를 제대로 이해한 것인지 확인 부탁드려도 될까요?MemberService클래스와 MemberServiceTest클래스의 멤버변수인 MemoryMemberRepository 객체가 다른 객체일 가능성이 있습니다. 각각의 두 클래스에서 굳이 동일한(총 2개) MemoryMemberRepository객체를 만들 필요는 없습니다. 왜냐하면 두 객체가 다른 객체일 가능성도 있고 목적상 다른 객체이어야 할 이유가 전혀 없기 때문입니다. 이러한 문제를 개선하기 위해 DI가 필요합니다. DI를 하는 방법은 다음과 같습니다. MemberService클래스에서 멤버변수에MemoryMemberRepository 객체를 생성하지 않고 참조변수만을 선언합니다. 생성자를 만들어 MemoryMemberRepository 객체를 주입받고 그 객체를 멤버변수 MemoryMemberRepository로서 사용하도록 합니다. MemberServiceTest클래스에서 MemberService 생성자를 사용하여 MemberService 객체를 생성하는데 이 때, 생성자의 인자에 MemoryMemberRepository 객체를 생성해 주입합니다. MemberService클래스에서 생성자를 만들었고 생성자의 인자로 MemoryMemberRepository 객체를 주입받고 그 객체를 멤버변수로 사용하기로 했다는 것을 잊지말아야 합니다. 이것이 핵심입니다. 물론 14분대 강의영상에서는 MemberServiceTest클래스에서 MemberService의 각 메서드들이 테스트되기 전 매번 MemberService 객체가 만들어져야 하므로 beforeEach() 메서드 안에서 구현이 되었을 뿐, DI의 원리는 지금까지 설명한 바와 동일합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
Math.max
안녕하세요 강사님궁금한 것이 있는데요마지막에 answer = Math.max(answer, cnt)는 처음부터 못 사는 경우를 생각해서 하는건가요??answer = cnt만 해도 그냥 답이 나와가지고 궁금해서 여쭤봅니다.