묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
FinanceDataReader 을 이용하여 ...........
- 미국 선물지수 Micro E-mini Dow Jones 의 일별 지수를 다운받을 수 있는 방법을 알려 주시면 감사 하겠습니다.
-
미해결
화면이 흐렸다 선명해졌다 반복합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 파이썬 머신러닝 완벽가이드 수업 보고 있는데요.1080p or 720p로 했을 때 화면이 지속적으로 흐렸다 선명해졌다 하는 오류가 발생합니다. 다른 분들도 그러신가요?
-
미해결실전! Querydsl
lazy loading 할 때 where 절 추가 관련 질문드립니다.
안녕하세요. OneToMany 가 여러개 있는 entity 를 페이징으로 가져오려고 하는 상황에서 default_batch_fetch_size 를 100 이상으로 설정해서 in query 로 가져오게 구성해놓았습니다. 이 때 lazy loading 으로 in query 호출 시 추가 where 조건을 넣어서 가져오고 싶은데요. 단 하나 가능한 케이스를 찾은건.. entity 클래스에 @Where 어노테이션을 달아서 처리하면 lazy loading in query 와 함께 명시한 where 절이 호출되는건 확인했습니다만, 이렇게 설정하면 관련된 모든 쿼리의 where 절에 추가될 수 있어서.. 특정 querydsl 로 호출 시에만 lazy loading 호출 시 where 조건을 추가하고싶습니다. 많이 검색해보면서 삽질해봤는데.. 딱히 방법이 보이지 않는 것 같은데요 ㅠㅠ 혹시 방법이 있을까요? 미리 감사합니다
-
미해결애플 웹사이트 인터랙션 클론!
검은색 영역 애니메이션이 움직이지 않습니다.
안녕하세요 강의 잘 듣고 있습니다. 제가 강의를 보면서 따라하던 도중 이상하게 검은색 박스는 생기지만 옆으로 움직이면서 서서히 사라지는 부분이 안 됌니다. 그런데 아무리 찾아보아도 문제의 원인을 모르겠습니다.(제가 변수의 이름을 제가 알기 쉽게 바꾼게 몇개 존재합니다.) (() => { let yoffset = 0; let prevScrollHeight = 0;//이전 스크롤 섹션의 높이를 담음 let currentScene = 0 //현재 활성화된 씬 let enterScene = false; const sectionInfo = [ //0 { type : 'sticky', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-1'), MessageA : document.querySelector('#scroll-section-1 .main-message.a'), MessageB : document.querySelector('#scroll-section-1 .main-message.b'), MessageC : document.querySelector('#scroll-section-1 .main-message.c'), MessageD : document.querySelector('#scroll-section-1 .main-message.d'), canvas : document.querySelector('#scroll-section-1 #first_canvas'), ctx : document.querySelector('#scroll-section-1 #first_canvas').getContext('2d'), }, values : { //비디오 정보 img_values : 300, img_obj : [], imgeSequence : [0,300], canvas_opacity : [1,0,{start : 0.9, end : 1}], //투명도 조절 messageA_fade_in : [0,1,{start : 0.1, end : 0.2}], messageB_fade_in : [0,1,{start : 0.3, end : 0.4}], messageC_fade_in : [0,1,{start : 0.5, end : 0.6}], messageA_fade_out : [1,0,{start : 0.25, end : 0.3}], messageB_fade_out : [1,0,{start : 0.45, end : 0.5}], messageC_fade_out : [1,0,{start : 0.65, end : 0.7}], //transform 조절 messageA_transform_in : [20,0,{start: 0.1, end : 0.2}], messageB_transform_in : [20,0,{start: 0.3, end : 0.4}], messageC_transform_in : [20,0,{start: 0.5, end : 0.6}], messageA_transform_out : [0,-20,{start: 0.25, end : 0.3}], messageB_transform_out : [0,-20,{start: 0.45, end : 0.5}], messageC_transform_out : [0,-20,{start: 0.65, end : 0.7}], } }, //1 { type : 'normal', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-2'), }, values : { } }, //2 { type : 'sticky', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-3'), desc_messageA: document.querySelector('#scroll-section-3 .desc-message.a'), desc_messageB : document.querySelector('#scroll-section-3 .desc-message.b'), desc_messageC : document.querySelector('#scroll-section-3 .desc-message.c'), canvas : document.querySelector('#scroll-section-3 #second_canvas'), ctx : document.querySelector('#scroll-section-3 #second_canvas').getContext('2d'), }, values : { img_values : 960, img_obj : [], imgeSequence : [0,960], canvas_fade_in : [0,1, {start : 0.05, end : 0.1}], canvas_fade_out : [1,0, {start : 0.9, end : 1}], //투명도 desc_messageA_fade_in : [0 , 1, {start : 0.1, end : 0.2}], desc_messageB_fade_in : [0 , 1, {start : 0.3, end : 0.4}], desc_messageC_fade_in : [0 , 1, {start : 0.5, end : 0.6}], desc_messageA_fade_out : [1 , 0, {start : 0.25, end : 0.3}], desc_messageB_fade_out : [1 , 0, {start : 0.45, end : 0.5}], desc_messageC_fade_out : [1 , 0, {start : 0.65, end : 0.7}], //transform 조절 desc_messageA_transform_in : [20,0,{start : 0.1, end : 0.2}], desc_messageB_transform_in : [20,0,{start : 0.3, end : 0.4}], desc_messageC_transform_in : [20,0,{start : 0.5, end : 0.6}], desc_messageA_transform_out : [0,-20,{start : 0.25, end : 0.3}], desc_messageB_transform_out : [0,-20,{start : 0.45, end : 0.5}], desc_messageC_transform_out : [0,-20,{start : 0.65, end : 0.7}], } }, //3 { type : 'sticky', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-4'), mainMessageA : document.querySelector('mid-message.a'), canvas : document.querySelector('#third_canvas'), ctx : document.querySelector('#third_canvas').getContext('2d'), }, values : { imgsrc : [ './images/blend-image-1.jpg', './images/blend-image-2.jpg' ], discrimination : 0, img_obj : [], recet1X : [0,0, {start: 0, end: 0}], recet2X : [0,0, {start: 0, end: 0}], rectscrollY : 0, } } ] function setHeight() { yoffset = window.pageYOffset; let totalHeight = 0; //각 섹션별 높이를 전부 담는 변수 const canvasRatio = window.innerHeight / 1080; //마지막 캔버스를 제외한 나머지 캔버스의 비율 for(let i = 0; i < sectionInfo.length; i++){ let sectionNum = sectionInfo[i]; let calcHeight = 0; if( sectionNum.type === 'sticky' ){ calcHeight = window.innerHeight * sectionNum.heightNum; sectionNum.height = calcHeight; sectionNum.objs.section.style.height = `${calcHeight}px` }else{ calcHeight = sectionInfo[i].objs.section.offsetHeight; sectionNum.height = calcHeight; } sectionNum.objs.section.style.height = `${calcHeight}px` } for(let i = 0; i < sectionInfo.length; i++){ totalHeight += sectionInfo[i].height; if( totalHeight >= window.pageYOffset){ currentScene = i; break; } } sectionInfo[0].objs.canvas.style.transform = `translate3d(-50%,-50%,0) scale(${canvasRatio})`; sectionInfo[2].objs.canvas.style.transform = `translate3d(-50%,-50%,0) scale(${canvasRatio})`; document.body.id = `show-scene-${currentScene}`; } function setCanvasImage() { let imgElem; let imgElem2; let imgElem3; for (let i = 0; i < sectionInfo[0].values.img_values; i++){ imgElem = new Image(); imgElem.src = `./video/001/IMG_${6726 + i}.jpg`; sectionInfo[0].values.img_obj.push(imgElem); } for (let i = 0; i < sectionInfo[2].values.img_values; i++){ imgElem2 = new Image(); imgElem2.src = `./video/002/IMG_${7027 + i}.jpg`; sectionInfo[2].values.img_obj.push(imgElem2); } for (let i = 0; i < sectionInfo[3].values.imgsrc.length; i++){ imgElem3 = new Image(); imgElem3.src = sectionInfo[3].values.imgsrc[i]; sectionInfo[3].values.img_obj.push(imgElem3); } } setCanvasImage(); function scrollLoop() { enterScene = false; prevScrollHeight = 0; for(let i = 0; i < currentScene; i++){ prevScrollHeight += sectionInfo[i].height; } if(yoffset > prevScrollHeight + sectionInfo[currentScene].height){ enterScene = true; currentScene++; document.body.id = `show-scene-${currentScene}`; } if ( yoffset < prevScrollHeight ){ if(yoffset < 0) return; enterScene = true; currentScene--; document.body.id = `show-scene-${currentScene}`; } if ( enterScene ) return; playAnimation(); } //애니메이션 처리 값과 현재 씬에서의 스크롤 비율을 넘겨받음 function calcValues(values,currentYoffset){ let rv;//값을 계산해 리턴해줄 변수 const scrollHeight = sectionInfo[currentScene].height; const scrollRatio = currentYoffset / sectionInfo[currentScene].height;//현재씬의 스크롤 비율 if ( values.length === 3 ){ //start ~ end 사이의 애니메이션 실행 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if( currentYoffset >= partScrollStart && currentYoffset <= partScrollEnd ){ rv = (currentYoffset - partScrollStart) / partScrollHeight * (values[1] - values[0] ) + values[0]; }else if(currentYoffset < partScrollStart){ rv = values[0] } else if ( currentYoffset > partScrollEnd ){ rv = values[1]; } }else{ rv = scrollRatio * (values[1] - values[0] ) + values[0]; } return rv; } function playAnimation() { const objs = sectionInfo[currentScene].objs; const values = sectionInfo[currentScene].values; const currentYoffset = yoffset - prevScrollHeight; const scrollHeight = sectionInfo[currentScene].height; const scrollRatio = currentYoffset / scrollHeight; switch(currentScene){ case 0: if ( scrollRatio <= 0.22 ){ objs.MessageA.style.opacity = calcValues(values.messageA_fade_in,currentYoffset); objs.MessageA.style.transform = `translateY(${calcValues(values.messageA_transform_in,currentYoffset)}%)`; } else{ objs.MessageA.style.opacity = calcValues(values.messageA_fade_out,currentYoffset); objs.MessageA.style.transform = `translateY(${calcValues(values.messageA_transform_out,currentYoffset)}%)`; } if(scrollRatio < 0.43){ objs.MessageB.style.opacity = calcValues(values.messageB_fade_in,currentYoffset); objs.MessageB.style.transform = `translateY(${calcValues(values.messageB_transform_in,currentYoffset)}%)`; }else{ objs.MessageB.style.opacity = calcValues(values.messageB_fade_out,currentYoffset); objs.MessageB.style.transform = `translateY(${calcValues(values.messageB_transform_out,currentYoffset)}%)`; } if( scrollRatio < 0.63 ){ objs.MessageC.style.opacity = calcValues(values.messageC_fade_in,currentYoffset); objs.MessageC.style.transform = `translateY(${calcValues(values.messageC_transform_in,currentYoffset)}%)`; }else{ objs.MessageC.style.opacity = calcValues(values.messageC_fade_out,currentYoffset); objs.MessageC.style.transform = `translateY(${calcValues(values.messageC_transform_out,currentYoffset)}%)`; } let imgeSequence = Math.floor(calcValues(sectionInfo[0].values.imgeSequence,currentYoffset)); objs.ctx.drawImage(values.img_obj[imgeSequence],0,0); objs.canvas.style.opacity = calcValues(values.canvas_opacity,currentYoffset); break; case 1: break; case 2: if( scrollRatio <= 0.22 ){ objs.desc_messageA.style.opacity = calcValues(values.desc_messageA_fade_in,currentYoffset); objs.desc_messageA.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageA_transform_in,currentYoffset)}%, 0)`; } else{ objs.desc_messageA.style.opacity = calcValues(values.desc_messageA_fade_out,currentYoffset); objs.desc_messageA.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageA_transform_out,currentYoffset)}%, 0)`; } if ( scrollRatio < 0.42 ){ objs.desc_messageB.style.opacity = calcValues(values.desc_messageB_fade_in,currentYoffset); objs.desc_messageB.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageB_transform_in,currentYoffset)}%, 0)`; }else{ objs.desc_messageB.style.opacity = calcValues(values.desc_messageB_fade_out,currentYoffset); objs.desc_messageB.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageB_transform_out,currentYoffset)}%, 0)`; } if ( scrollRatio < 0.62 ){ objs.desc_messageC.style.opacity = calcValues(values.desc_messageC_fade_in,currentYoffset); objs.desc_messageC.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageC_transform_in,currentYoffset)}%, 0)`; }else{ objs.desc_messageC.style.opacity = calcValues(values.desc_messageC_fade_out,currentYoffset); objs.desc_messageC.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageC_transform_out,currentYoffset)}%, 0)`; } if(scrollRatio < 0.5){ objs.canvas.style.opacity = calcValues(values.canvas_fade_in,currentYoffset); }else{ objs.canvas.style.opacity = calcValues(values.canvas_fade_out,currentYoffset); } let imageSequence2 = Math.floor(calcValues(values.imgeSequence,currentYoffset)); objs.ctx.drawImage(values.img_obj[imageSequence2],0,0); break; case 3: const widthRatio = window.innerWidth / objs.canvas.width; const heightRatio = window.innerHeight / objs.canvas.height; if ( widthRatio <= heightRatio ){ objs.canvas.style.transform = `scale(${heightRatio})`; }else{ objs.canvas.style.transform = `scale(${widthRatio})`; } const newWidth = document.body.offsetWidth / widthRatio//안쪽의 content영역의 width값을 구하기 위한 계산 const newheight = window.innerHeight / heightRatio//안쪽의 content영역의 높이를 구하기 위한 계산 const blockArea = newWidth * 0.15; values.recet1X[0] = (objs.canvas.width - newWidth) / 2; // 애니메이션 시작 지점을 계산 values.recet1X[1] = values.recet1X[0] - blockArea;//애니메이션 끝 지점을 계산 values.recet2X[0] = (values.recet1X[0] + newWidth) - blockArea; // 오른쪽 블록의 애니메이션 시작지점을 계산 values.recet2X[1] = values.recet2X[1] + blockArea//오른쪽 애니메이션의 끝 지점을 지정 if(!values.rectscrollY){ values.rectscrollY = objs.canvas.getBoundingClientRect().top; values.recet1X[2].end = values.rectscrollY / scrollHeight; values.recet2X[2].end = values.rectscrollY / scrollHeight; } objs.ctx.fillRect( parseInt(calcValues(values.recet1X, currentYoffset)), 0, parseInt(blockArea), objs.canvas.height ); objs.ctx.fillRect( parseInt(calcValues(values.recet2X, currentYoffset)), 0, parseInt(blockArea), objs.canvas.height ); break; } } window.addEventListener('resize',setHeight); window.addEventListener('scroll',() => { yoffset = window.pageYOffset; scrollLoop() }); window.addEventListener('load',() => { setHeight(); sectionInfo[0].objs.ctx.drawImage(sectionInfo[0].values.img_obj[0],0,0); sectionInfo[3].objs.ctx.drawImage(sectionInfo[3].values.img_obj[0],0,0); }); })();
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몇 가지 질문이 있습니다.
1. public GameObject Instantiate(string path, Translate parent = null)에서 Translate 밑에 오류가 뜹니다. 형식 또는 네임스페이스 이름을 찾을 수 없다고 하는데, 왜 이런 건가요? 2. Instantiate의 경우 그냥 곧바로 prefab을 넣어서 사용했는데 왜 Destroy는 tank에 Instantiate를 넣은 뒤 tank를 넣어서 삭제해야 하나요? 3. public GameObject Instantiate(string path, Transform parent = null)에서 parent의 의미는 무엇인가요? 4. GameObject prefab = Load<GameObject>($"Prefabs/{path}");의 작동 원리를 모르겠습니다. 경로를 입력하는 것까진 알겠는데 경로에서 'Tank' 프리팹을 불러오려면 불러올 프리팹의 이름도 입력해 주어야 하는 게 아닌가요? 5. public GameObject Instantiate(string path, Transform parent = null)를 보면 Instantiate의 파라미터가 두 개인데 어째서 Managers.Resource.Instantiate에서 불러올 땐 Managers.Resource.Instantiate("Tank");로 파라미터가 하나만 들어가나요? 제가 모자라서 질문이 너무 많네요ㅠ 매번 친절히 답변해 주셔서 감사합니다.
-
미해결쉽게 따라할 수 있는 안드로이드 앱 개발
Mp3 플레이어와 관련하여....
강의 내용과 같이 코딩하여 프로그램을 하여 완성하였습니다. 그런데 mp.start(); 에서 음악이 흘러 나오지 않습니다. 어찌 된일일까요? 코딩한 자료입니다. mp = MediaPlayer.create(this, R.raw.samp1);mp.setLooping(false);Log.d("test", "mp start....");tv = (TextView)this.findViewById(R.id.hellobutton);Log.d("test", "mp in....1");tv.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Log.d("test", "mp in....2"); if(!mp.isPlaying()){ mp.start(); Log.d("test", "mp playing......."); tv.setText("Stop"); } else { mp.pause(); tv.setText("Start"); } }});2021-05-31 19:15:02.181 21066-21066/kr.co.soncampus.myapplication17 D/test: mp start.... 2021-05-31 19:15:02.182 21066-21066/kr.co.soncampus.myapplication17 D/test: mp in....1 2021-05-31 19:15:05.211 21066-21066/kr.co.soncampus.myapplication17 D/test: mp in....2 2021-05-31 19:15:05.213 21066-21066/kr.co.soncampus.myapplication17 D/test: mp playing.......
-
미해결실전! Querydsl
JPAQueryFactory 필드 이동 오류 관련 질문입니다
강의를 보고 JPAQueryFactory를 필드로 옮겼을때 nullpointexception이 뜹니다. JPAQueryFactory를 startQuerydsl 메소드 안으로 옮기면 괜찮습니다. 강의 내용에서 필드로 옮기는 것이 가능하다고 하셨는데, 이 경우에는 어떻게 해야하는지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트에서 널값오류?가 납니다
똑같이따라하고있었는데 왜그럴까요?ㅠㅠ 따라들어가보니 Value가 null일때 나는 오류라고 써있는것같습니다,,,,, 제가뭔가 빼먹은걸까요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
TF_Record 파일 생성 시 오류
교수님 안녕하세요! 그동안 tensorflow object detection api 관련해서 여러가지 오류로 많이 질문했던 학생입니다! 그동안 발생했던 심각한 오류는 해결이 되었습니다. TF_Record 파일을 만드는 과정에서 다음과 같은 오류가 발생하여 여쭤보고 싶어서 쪽지 남기게 되었습니다! 해당 annotation 파일의 xmls 폴더 안에 들어가보면 아래 사진과 같이 Bengal_111.xml 파일이 없긴 하더라구요. 처음 다운로드 받았을 때 부터 없었던 것 같은데... 이 부분은 어떻게 해결해야 될 지 모르겠습니다... 감사합니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Axios 헤더 전달관련 질문입니다.
page컴포넌트에서 다음과 같이 작성을 해서 axios요청을 할 때마다 Authorization에 access_token을 전달할려고 하는데요, 그런데 LoginForm이라는 컴포넌트가 에서 axios요청을 하게되면 Header에 전달이 되지 않는 문제가 생기는 것 같습니다. const LoginForm = () => { const { register, handleSubmit } = useForm<Form>(); const dispatch = useDispatch(); const onSubmit: SubmitHandler<Form> = async (data) => { const res: AxiosResponse<LoginResponseType> = await loginAPI(data); if (res.status === 200) { const { accessToken, refreshToken } = res.data.tokens; setToken(accessToken, refreshToken); const userResponse: AxiosResponse<MeResponseType> = await meAPI(); const userInfo = userResponse.data.user; dispatch(userActions.setLoggedUser(userInfo)); } if (res.status === 400) { toastr.error("인증 오류", "아이디나 비밀번호를 확인해보세요"); } if (res.status === 500) { toastr.error("인증 오류", "아이디나 비밀번호를 확인해보세요"); } }; return ( <Container> <h1>로그인</h1> <form> <input type="text" {...register("email")} placeholder="이메일" /> <input type="password" {...register("password")} placeholder="비밀번호" /> <button onClick={handleSubmit(onSubmit)}>로그인</button> </form> <div className="go-register"> 회원이 아니신가요? <span>회원가입</span> </div> </Container> ); }; export default LoginForm; LoginForm 컴포넌트에서는 다음과 같이 작동하구요, me 정보를 가져오는 API입니다. 제가 SSR에서 쿠키를 다루는 방법을 아직 이해하지 못한 것일까요...
-
해결됨비개발자를 위한 RPA 강의 (UiPath 입문편)
Type into 에서 영문으로 입력하면 한글로 자꾸 변환되는데 영문으로 입력하려면 어떻게 해야하나요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 제목내용과 본문내용 같습니다.
-
미해결IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z
이벤트 드리븐 설계
삭제된 글입니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Transactional에 대해서
@Transactional어노테이션이 Spring에서는 기본적으로 rollback이 되신다고 설명해주셨는데요 테스트에서는 롤백이 되지만 서비스나 레퍼지토리에서는 롤백이 되지않는다라는 의미인거죠??
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
axios 사용중 cors에러
axios를 사용하여 post응답을 요청했습니다. 하지만 아래와 같이 cors에러가 나오더군요. from origin 'http://localhost:8081' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 이리저리 방법을 찾아서 AxiosPlugin을 사용하거나, 요청 헤더에 아래와 같이 값을 추가해도 되질 않네요;;;; 'Access-Control-Allow-Origin' : '*', 'Access-Control-Allow-Headers' : 'Original,Content-Type,Authorization,X-Auth-Token', 'Access-Control-Allow-Methods' : 'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS',
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
이러한 문제에 도달했을때 즉시 종료할수있다면 하는것이 좋을까요?
#include <stdio.h> #include <algorithm> using namespace std; int n, i, arr[11], total=0; bool flag = false; void DFS(int level, int sum){ if(sum > total/2){ return; } if(level == n+1){ if(sum == (total-sum)){ flag = true; return; } } else { DFS(level+1, sum+arr[level]); DFS(level+1, sum); } } int main(){ //freopen("input.txt", "rt", stdin); scanf("%d", &n); for(i=1; i<=n; i++){ scanf("%d", &arr[i]); total += arr[i]; } if(total%2 == 1){ printf("NO"); return 0; } DFS(1, 0); if(flag){ printf("YES"); } else { printf("NO"); } return 0; } 선생님 말씀대로 코드를 짰는데요 우선 total%2 == 1 (홀수)이면 즉시 종료하는것으로 하는건 좋은 답일까요 안좋은 답일까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
풀이 질문입니다.
function solution(m, arr){ let ans = 0; for(let i=0; i<arr.length; i++) { let s = m - arr[i]; let p = i+1; while(p<arr.length) { if(s-arr[p] === 0) { ans++; break; }; if(s-arr[p] > 0) s -= arr[p++]; if(s-arr[p] < 0) break; } } return ans; } let a=[1, 2, 1, 3, 1, 1, 1, 2]; console.log(solution(6, a)); 빼고 더하는 식으로 구현하지 않고 연속된다는 점에서 시작점 이후로 +1씩 포인터 크기를 늘렸는데 위와 같이 풀어도 시간복잡도가 같을까요~?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
맛비님 설치과정중 질문있습니다.
kim@DESKTOP-UIESEKA:~$ source ./tools/Xilinx/Vivado/2020.2/setting64.sh bash: ./tools/Xilinx/Vivado/2020.2/setting64.sh: No such file or directory 과 같이 찾을 수가 없다고 하네요ㅠㅠ home/kim/tools/Xilinx 경로에 설치했습니다.
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
필드 추가시 적용해나가는 방법 질문입니다!
강사님.... 강의 진짜 잘듣 고있어요 친구한테도 추천하고... 저의 부족한 지식들을 잘 채워주시고 있으십니다.. 사랑합니다..! 다름이아니라 이렇게 맨처음에 추가하는게 아닌 나중에 느려진 속도를 판단하고 개선해 나아가는 과정에서 1. populate 에서 blog 필드에 아예 데이터를 추가하는 경우는 실무상에서 기존에 생성되었던 블로그는 남겨두고(user,comment가 없는), (user,comment가 있는)blog를 추가를 해나가는 방식인가요 아니면 2. 바뀐 blog 필드로 기존의 blog 데이타를 전부다 변경하는 방식인가요 사실상 백단에서 클라이언트 단으로 넘기는건 blog 객체이기 때문에 상관은 없어보이지만 2가지 데이터가 같이 있는경우 어떻게 처리하시는지 궁금합니다! 추가적으로 이렇게 필드를 자유자재로 조정할수있는게 진짜 몽고디비의 장점이라고 생각합니다... 으 mysql 로 한다하면끔찍하네요.. -- 추가적인 질문! 서버가 올라가게되면 실제 데이타가 db에 쌓이게 되는데 피드백을 받으면서 개발을 한다하면은 mongo DB 같은경우에는 어떻게 테스트 개발 db와 상용 db 를 구분해 주시는지 궁금합니다! 가령, 환경변수를 통해서 테스트db와 상용db를 따로 두고 바꿔가면서 진행한다 라던지.... CTO 하시면서 어떻게 설계를 해두셨는지 궁금합니다! 답변해주시면 감사하겠습니다... 강의 진짜 잘듣고 있어요!
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의중에 실무에 대한 궁금중이 있어서 질문합니다.
강의중에서 SimpleOrderDto 클래스 생성자에 인자로 entity를 받는데 중요하지 않은곳에서 중요한것을 받는건 상관 없다고 하셨는데..! 영한님도 실무에서 dto 생성자에 entity를 직접 받아서 사용하시나요??? 될수있으면 엔티티로 받지 말고 값을로 받아서 채우던가 , 다른 클래스(dto) 변환 해서 넘기는게 좋다는 이야기를 들은적이 있어서요 예를들어 public class CommonWrapper { @Getter public static class SelectMember { private Long id; private String writer; private String contents; private String mention; private SelectMember(Long id, String writer, String contents, String mention) { this.id = id; this.writer = writer; this.contents = contents; this.mention = mention; } public static SelectMember from (Member member) { return new SelectMember(member.getId(), member.getWriter(), member.getContents(),member.getMention()); } } 궁금해서 여쭈어봅니다!!
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
노션 수정 요청
노션에서 def form(request): ... return redirect('main:result',developer_id=best_developer_id) 되어 있는데 def submit(request): 로 수정 부탁드립니다.