묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
36번 다소 헷갈려서 질문을 드립니다.
for(j = i-1; j>=0; j--){ // 1 if(a[j]>tmp) a[j+1] = a[j]; else break; } a[j+1]=tmp; // 2 처음 for문이 시행될 때에 j는 i가 1이기 때문에, j는 0으로 초기화가 된 상태에서 for문 안에 있는 일련의 if문을 거치고 난 뒤에 j--에 의해 j가 -1로 바뀐 상황에서, 이미 j>=0이라는 컨디션에 해당안하기에 바로 a[0]=tmp; 가 된다고 이해하였습니다. 이게 다른건 몰라도 삽입은 할 때마다 이상하게 상기 ㅈ주석으로 표시한 2코드의 의미가 이해가 안된다기보다는 오히려 확 와닿지를 않는다고 표현하는게 더 적절하네요ㅜㅜㅜ 그렇다면 for문 대신 while(j>=0&&a[j]>tmp){ if(a[j]>tmp){a[j+1] = a[j];} else break; j--; } a[j+1]=tmp; } 라고 표현해도 괜찮을까요? 늘 감사드립니다.
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
= 와 ==의 차이
is(=)는 변수가 같은 Object(객체)를 가리키면 True, ==는 변수가 같은 Value(값)을 가지면 True로 알고 있습니다. 그런데 코딩을 하면 할 수록 둘의 차이가 계속 헛갈립니다. 이번 강의에서는 a = 'Park', if a == 'Kim' 으로 표현하셨는데 두 번째에 왜 ==가 오는 지 잘 모르겠습니다.
-
미해결영리한 프로그래밍을 위한 알고리즘 강좌
pdf에 있는 Excercise 답은 없나요?
답과 해설이 있으면 더 좋을것같은데요...
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
예외와 에러의 차이
강의 설명에서 예외와 에러를 혼동해서 사용하시는 것 같아요. "둘을 나누어 보기보다, 의도한대로 작동하지 않으면 예외로 생각하자"고 하셨는데, 강의의 설명에서 '에러'로 말씀하신걸 "예외'로 생각해도 될까요?
-
미해결초간단 초스피드 데이터 수집 (파이썬 크롤링)
chromedriver 라이브러리
프로젝트 왼쪽에 나온것처럼 chromedriver 추가하려면 어떻게 해야하나요?? 드라이버 설치하고 경로를 바탕화면으로 설정한 다음에 webdriver.Chrome('설치경로')로 했는데도 왼쪽에 추가가 안 됩니다 ㅠㅠ
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
35번 궁금합니다.
선생님, 선생님의 코드에 비해 저의 코드에 어떠한 불필요한 과정이 있는지 알려주시면 대단히 감사하겠씁니다. 많이 까주세요. 감사합니다. #include<iostream> #include<vector> using namespace std; void swap(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } int main() { int N; int negative = 0; //입력받은 음수의 개수 int start = 0; //음수가 맨 앞으로 도달하면 그 다음으로 인덱스를 설정 int positive = 0; //양수의 시발점을 표현하기 위한 인덱스 cin >> N; vector<int>index(N); vector<int>arr(N); for (int i = 0; i < N; i++) { index[i] = i; } for (int i = 0; i < N; i++) { cin >> arr[i]; if (arr[i] < 0) { negative++; } } for (int i = 0; i < N; i++) { if (start == negative) { break; } if (arr[i] < 0) { swap(&arr[start], &arr[i]); swap(&index[start], &index[i]); start++; } } for (int i = 0; i < N; i++) { if (arr[i] < 0) { positive++; } } for (int i = positive; i < N; i++) { int min = index[i]; for (int j = i + 1; j < N; j++) { if (min > index[j]) { swap(&index[i], &index[j]); swap(&arr[i], &arr[j]); } } } for (int i = 0; i < N; i++) { printf("%d ", arr[i]); } }
-
미해결Node.js - Express
이메일 입력하면 제출이 안됩니다..
var http = require('http'); var fs = require('fs'); var url = require('url'); var qs = require('querystring'); var template = require('./lib/template.js'); var path = require('path'); var sanitizeHtml = require('sanitize-html'); var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; var pathname = url.parse(_url, true).pathname; if(pathname === '/'){ if(queryData.id === undefined){ fs.readdir('./data', function(error, filelist){ var title = 'Welcome'; var description = 'Hello, Node.js'; var list = template.list(filelist); var html = template.HTML(title, list, `<h2>${title}</h2>${description}`, `<a href="/create">create</a>` ); response.writeHead(200); response.end(html); }); } else { fs.readdir('./data', function(error, filelist){ var filteredId = path.parse(queryData.id).base; fs.readFile(`data/${filteredId}`, 'utf8', function(err, description){ var title = queryData.id; var sanitizedTitle = sanitizeHtml(title); var sanitizedDescription = sanitizeHtml(description, { allowedTags:['h1'] }); var list = template.list(filelist); var html = template.HTML(sanitizedTitle, list, `<h2>${sanitizedTitle}</h2>${sanitizedDescription}`, ` <a href="/create">create</a> <a href="/update?id=${sanitizedTitle}">update</a> <form action="delete_process" method="post"> <input type="hidden" name="id" value="${sanitizedTitle}"> <input type="submit" value="delete"> </form>` ); response.writeHead(200); response.end(html); }); }); } } else if(pathname === '/create'){ fs.readdir('./data', function(error, filelist){ var title = 'WEB - create'; var list = template.list(filelist); var html = template.HTML(title, list, ` <form action="/create_process" method="post"> <p><input type="text" name="title" placeholder="title"></p> <p> <textarea name="description" placeholder="description"></textarea> </p> <p> <input type="submit"> </p> </form> `, ''); response.writeHead(200); response.end(html); }); } else if(pathname === '/create_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var title = post.title; var description = post.description; fs.writeFile(`data/${title}`, description, 'utf8', function(err){ response.writeHead(302, {Location: `/?id=${title}`}); response.end(); }) }); } else if(pathname === '/update'){ fs.readdir('./data', function(error, filelist){ var filteredId = path.parse(queryData.id).base; fs.readFile(`data/${filteredId}`, 'utf8', function(err, description){ var title = queryData.id; var list = template.list(filelist); var html = template.HTML(title, list, ` <form action="/update_process" method="post"> <input type="hidden" name="id" value="${title}"> <p><input type="text" name="title" placeholder="title" value="${title}"></p> <p> <textarea name="description" placeholder="description">${description}</textarea> </p> <p> <input type="submit"> </p> </form> `, `<a href="/create">create</a> <a href="/update?id=${title}">update</a>` ); response.writeHead(200); response.end(html); }); }); } else if(pathname === '/update_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var id = post.id; var title = post.title; var description = post.description; fs.rename(`data/${id}`, `data/${title}`, function(error){ fs.writeFile(`data/${title}`, description, 'utf8', function(err){ response.writeHead(302, {Location: `/?id=${title}`}); response.end(); }) }); }); } else if(pathname === '/delete_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var id = post.id; var filteredId = path.parse(id).base; fs.unlink(`data/${filteredId}`, function(error){ response.writeHead(302, {Location: `/`}); response.end(); }) }); // 로그인 } else if (pathname === '/login'){ fs.readdir('./data', function(error, filelist){ var title = 'Login'; var list = template.list(filelist); var html = template.HTML(title, list, ` <from action="login_process" method="post"> <p><input type="text" name="email" placeholder="email"></p> <p><input type="password" name="password" placeholder="password"></p> <p><input type="submit"></p> </from>`, `<a href="/create">create</a>` ); response.writeHead(200); response.end(html); }); // 로그인 받기 }else if ( pathname ==='/login_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); if(post.email === 'fkxodbs@naver.com' && post.password ==='111111'){ response.writeHead(302, { 'Set-Cookie' : [ `email=${post.email}`, `password=${post.password}`, `nickname=egoing` ], Location: `/` }); response.end(); }else { response.end('who?'); } }); } else { response.writeHead(404); response.end('Not found'); } }); app.listen(3000); --------- var http = require('http'); var cookie = require('cookie'); http.createServer(function(request,respone){ console.log(request.headers.cookie) var cookies = {} if(request.headers.cookie !== undefined){ cookies = cookie.parse(request.headers.cookie) } console.log(cookies.yummy_cookie); console.log(request.headers.cookie); respone.writeHead(200, { 'Set-Cookie' : [ 'yummy_cookie=choco', 'tasty_cookie=strawberry', `Permanent=cookies; Max-Age=${60*60*24*30}`, // Max-Age= 현재 시점을 기준으로 얼마나 살아있을까 정한다 'Secure=Secure; Secure', 'HttpOnly=HttpOnly; HttpOnly', 'Path=Path; Path=/cookie', 'Domain-Domain; Domain=02.org' ] }) respone.end('cookie!!') }).listen(3000);
-
미해결홍정모의 따라하며 배우는 C++
유투브로 수강하다 이제 인프런으로 건너왔습니다.
교수님의 유투브 [따배씨++]로 공부하다 인프런으로 건너왔습니다. 4.10 구조체 Structure까지 공부했습니다. * 저는 1987년부터 7년간 대한항공 시스템부에서 IBM Macro Assemble어로 프로그래밍, 설계, PM을 했고 PC가 처음 나왔을 때, Turbor-C와 DBase IV를 이용해 Mainframe-PC Interface Program을 1년간 했었습니다 이제 나이 많이 먹었지만, C++을 도전하고 싶습니다. 나이들어도 프로그래머가 되고 싶다는 젊은 시절의 꿈을 이루고 싶습니다. 다음은 파이선도 해보고 싶구요. 어셈블러->C->C++->Python 으로 이어지는 같은 계열의 프로그래밍으로 이어가고 싶군요. 앞으로 많은 가르침 받겠습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
NameError와 AttributeError의 차이
예컨대 python이 print(time.time())에서 time이 변수인지, 모듈/클래스에 있는 속성인지 어떻게 알 수 있는지 궁금합니다. 구글링 결과, <변수에 바로 접근할 때 오류가 있으면 이름 오류가 발생하고, 마침표(.)를 찍고 그 인스턴스의 속성에 접근할 때 오류가 있으면 속성 오류가 발생합니다.> 라는 설명이 있어 실험적으로 print(a.a())라 적었는데 NameError가 뜨네요. (time도 변수라 생각하면 a도 변수라 생각했습니다.) 두 개를 나누는 기준 혹은 어떤 걸 속성으로 인지하고 어떤 걸 변수로 인지하는지 궁금합니다.
-
미해결스케치 뚝딱 끝내기! 입문자용 무료 강좌
아트보드 질문드립니다!
제가 아트보드를 만들게 되면 일반적인 흰색의 사각형이 나옵니다. 그런데 강의영상을 보면 아이폰 아트보드가 노치디자인으로 구성되어있는 것으로 보이는데요. 이 노치디자인은 강사님께서 직접 만드신건가요??
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
seaborn.barplot 결과 화면에서 남는 bar가 한개 있습니다..
안녕하세요! 강의를 완강하고 개인프로젝트로 데이터분석 연습하고 있는 학생입니다. 다름이 아니라 개인 프로젝트 도중에 궁금한 점이 생겨서 질문드립니다!. 그림 처럼 seaborn 의 barplot을 이용했습니다. 그런데 출력화면에서 가장 맨 오른쪽에 x축 이름이 없는 바가 한개 추가되있습니다... 이게 어떤 의미인가요..? 아래 isnull() 부분 보시면 결측치도 하나도 없습니다... 맨 오른쪽의 하나 막대기는 대체 뭘 의미하는 건가요...? 그리고 비만정도를 제가 bmi값으로 분류했는데 비만정도에 입력이 안된 값을 찾아보려고 pandas.options.display.max_rows = 1400 개 (전체 행이 1339개 됩니다) 출력해서 일일이 다 확인했는데 비만정도에 빈칸이나 NaN값이 들어간 행은 절!대! 없습니다..
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
영상 [13: 02초] 오타가 있습니다!
질문게시판에 작성해서 죄송합니다. SignUpForm 타입으로 캐스팅하려는 객체가 errors 가 아니라 object여야 하는데 영상에선 errors로 되어있습니다.
-
미해결대세는 쿠버네티스 (초급~중급편)
helm chart에 관련해서
helm chart에 대해서도 강의를 하실 계획이 있으신가요?? 강의를 들으며 구글링하다보면 helm chart라는 걸 써서 자원들을 묶어 하나의 패키지로 해준다는데.. 실무에서 필수라면 꼭 알고싶어요..ㅎㅎ
-
미해결Flutter 입문 확장판 - 인스타그램 클론 2.0
flutter bloc패턴이나 디자인 패턴관련해서 강의계획 혹시 있으세요?
flutter bloc, stream 패턴 관련된 강의계획 있으신지 궁금합니다'-'ㅎ
-
미해결2020년 코딩테스트 대비 필수 알고리즘 개념모음집 + 실전 모의고사 문제풀이
크루스칼 알고리즘 강의에 대한 문의
구현 하자고 했는데 왜 구현에 대한 강의는 없나요?
-
미해결React로 NodeBird SNS 만들기
게시글 수정 작업중입니다.
formData 에는 값이 잘 들어 갔습니다. 라우터에서 postId 값은 잘 들어가는데 수정한 데이터 값이 전달되지 않습니다. 어떤 문제로 이렇게 되나요?
-
미해결React로 NodeBird SNS 만들기
커스텀 훅
이 커스텀 훅 부분이 잘 이해가 안가서요.. 재사용성을 위한것이라는 것과 중복을 줄였다는건 알겠는데 input에서 입력한 값들이 저기에 어떤식으로 들어가는건지 console.log로 찍어봐도 잘 이해가 안가요ㅠㅠ 제가 이해한걸 풀어보자면 input에서 changeId 등등 이벤트들이 발생하면 useInput()이 실행이 되고 실행될 때 useInput('') 이 매개변수로 input에서 입력한 값이 들어가고 useInput = (initValue = null) << 이부분에서 매개변수에 initValue가 처음엔 null이다가 이 부분에 input에서 입력한 값이 들어가서 useState를 실행하여 input에서 받아온 값을 setter로 해당하는 input란에 넣고 그 넣은 값을 henler에 저장하여 value와 함께 리턴해 주어서 value는 id에 handler는 onChangeId에 들어가는 게 맞는건가요? 여기에서 value, setter에 어떤값이 들어갈지 정확히 잘 모르겠어요..
-
미해결문제로 배우는 C언어
24. 최솟값 구하기
#include <stdio.h> int main(){ int a, b, c, d, e, f, g, i=0; scanf("%d %d %d %d %d %d %d", a, b, c, d, e, f, g); while(1){ i++; if(i==a) i=a; if(i==b) i=b; if(i==c) i=c; if(i==d) i=d; if(i==e) i=e; if(i==f) i=f; if(i==g) i=g; break; } printf("%d", i); return 0; } 이 코드는 왜 안되나요?
-
미해결파이썬 레시피 - 웹 활용 입문편 (전자책 포함)
구글 드라이브 질문드립니다
소스를 실행하고 링크를 타고 들어가 로그인 해도 위와 같이 뜹니다. 보안수준이 낮은앱 엑세스 허용도 했는데 뭐가 원인인지 모르겠습니다.
-
미해결C 와 C++ 을 동시에 배워보자 - 두들낙서의 C/C++
char *name = "Doodle" 식 에러
제가 배울때 *name과 name[]이 같은 의미로 쓰일때는 매개변수 일때에만 이라고 배웠습니다. 실제로도 char *name = "Doodle" 선언은 안되고 char name[] = "Doodle"만 가능하던데 영상과 달라서 했갈립니다. 이유를 가르쳐주실수 있나요?