inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

광고상품 외 표기 문의드립니다.

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요. 답변 감사드립니다. 전체 코드를 첨부하여 다시 문의글 작성하였습니다. 쿠팡 광고상품과 로켓상품도 표기하고자 합니다. if len( link.select (".ad-badge-text")) > 0: print("광고상품") 를 아래와 같이 수정하면 될까요? 해봤는데 아무표기가 안되서요. if len( link.select ("span.badge rocket")) > 0: print("로켓상품") 그리고 광고상품 로켓상품 둘다 표현하고자 하면 아래와 같이 표기하면 될까요? if len( link.select (".ad-badge-text")) > 0: print("광고상품") elif len( link.select ("span.badge rocket")) > 0: print("로켓상품") 광고상품은 광고상품이라고 잘 표기가 되는게 로켓상품은 전혀 결과가 나오지 않아서요.

  • python
  • 웹-크롤링
suki 댓글 2 좋아요 2 조회수 449

스택 메모리는 왜 아껴야 하는건가요?

해결됨

독하게 되새기는 C 프로그래밍

기본적으로 힙과 스택이 어떤 식으로 사용되는지는 알고 있는데요, 다만 스택의 기본 최대 크기가 1MB라는 점이 잘 이해가 안됩니다.. 아마 제가 실무를 경험해본 적이 없어서 공감을 못하는 듯한데 이 1MB라는 것이 기본값으로 쓰일 만큼 적절한 크기인가요? 제 생각엔 그렇게 널널한 크기는 아닌 듯한데.. 그렇게까지 아껴야 하는 이유가 뭘까 싶어서 질문드립니다 그냥 힙 영역을 최대한 많이 확보하기 위해서라고 생각하면 될까요?

  • c
  • secure-coding
  • kernel
sete 댓글 1 좋아요 0 조회수 929

섹션 4 -> 그리디 , 결정문제 질문

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요! 강의 정말 잘 듣고 있습니다. 섹션 4를 풀다가, 어떤 문제를 그리디를 쓰고, 어떤문제를 결정알고리즘을 써야하는지 감이 잡히지 않아서 질문 드립니다. 답변해주시면 정말 감사하겠습니다!

  • 코테 준비 같이 해요!
  • 코딩-테스트
  • python
깨위 댓글 1 좋아요 0 조회수 268

배열을 전역변수로 설정하는 이유

미해결

문제로 배우는 C언어

타 강의에서 전역변수는 최대한 사용을 지양하는게 좋다고 들은 기억이 있는데, 해당 강의에서 배열을 전역변수로 사용하는 이유가 있나요?? 선생님께서 다른 질문글에 답변해주신 < 배열을 main 함수 밖에 전역으로 선언하면 메모리의 데이터 영역에 할당되며 메모리의 크기가 여유롭게 잡힙니다. 하지만 main 안에 지역변수로 선언하면 메모리의 스택영역에 할당되며 크기가 작아 여유공간이 없습니다. > 이 내용과 관련이 있는걸까요?

  • c
김준범 댓글 1 좋아요 1 조회수 685

이 문제에서 궁금한게있습니다.

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

ch[i] != 0라서 if문을 탐색하지않는다면 L에 해당하는 dfs함수는 뭘 반환하는건가요?? 반환하는게 안보일때는 return이 생략됐다고 생각하는건가요?

  • python
  • 코딩-테스트
  • 코테 준비 같이 해요!
코딩코딩코딩코 댓글 1 좋아요 0 조회수 355

41. A를 #으로에서 질문 있습니다.

미해결

문제로 배우는 C언어

풀이를 보기 전에는 string.h의 존재를 몰라서 아래처럼 작성했었습니다. #include<stdio.h> int main() { int i; char word[100]; scanf("%s", word); for (i = 0; i < 100; i++) { if (word[i] == 'A') word[i] = '#'; if (word[i] == NULL) break; } printf("%s", word); 여기서 궁금한 것은 for문 속 두번째 줄의 의도가 for문에서 쓸데없이 계속 돌지 않게 하기 위한 것인데, 맞게 반영 된건지 궁금합니다. 그러니까 word를 APPLE로 입력했을 때 for문 속에서 i = 5일 때 break가 제대로 작동 되는지 궁금합니다!

  • c
김준범 댓글 1 좋아요 0 조회수 309

로그인 폼을 만들고 로컬 스토리지에 jwt저장하기 강의에서 질문입니다!

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

import React, { useState } from "react"; import { Card, Button, Form, Input, notification } from "antd"; import { useHistory } from "react-router-dom"; import Axios from "axios"; import { SmileOutlined, FrownOutlined } from "@ant-design/icons"; import useLocalStorage from "utils/useLocalStorage"; export default function Login() { const history = useHistory(); const [jwtAccessToken, setJwtAccessToken] = useLocalStorage( "jwtAccessToken", "" ); console.log("loaded Token: ", jwtAccessToken); // 왜 이게 두번이나 출력되는 것이지? const onFinish = (values) => { async function fn() { const { username, password } = values; const data = { username, password }; try { //응답을 꼭 받아야 한다. 토큰을 받아야 하니까 const response = await Axios.post( "http://127.0.0.1:8000/accounts/token/", data, { headers: { "Content-Type": "application/json" } } ); // const { data: token } = response; 이런 방식은 아래랑 다르다 response에서 data을 꺼내서 이름을 token이라 짓는 것 // const token = response.data 와 일치하며 밑에 녀석은 // const jwtAccessToken = response.data.access 과 일치한다 const { data: { access: jwtAccessToken }, } = response; setJwtAccessToken(jwtAccessToken); notification.open({ message: "로그인 성공!", icon: <SmileOutlined style={{ color: "#108ee9" }} />, }); // history.push("/accounts/login"); //TODO: 이동주소 } catch (error) { console.log(error); if (error.response) { notification.open({ message: "로그인 실패!", icon: <FrownOutlined style={{ color: "#ff3333" }} />, description: "아이디/암호를 확인해 주세요.", onClick: () => { console.log("Notification Clicked!"); }, }); } } } fn(); }; return ( <Card title="login"> <Form labelCol={{ span: 8 }} //부트스트랩은 한 행이 12 컬럼인데 antd는 24컬럼임 wrapperCol={{ span: 16 }} style={{ maxWidth: 600 }} onFinish={onFinish} autoComplete="off" > <Form.Item label="Username" name="username" rules={[{ required: true, message: "Please input your username!" }]} //rules을 통해 유효성검사로직이 들어가 잇다 > <Input /> </Form.Item> <Form.Item label="Password" name="password" rules={[ { required: true, message: "Please input your password!" }, { min: 5, message: "5자리 이상 해주세요" }, // 한글자 한글자 들어갈때마다 검사해준다. ]} > <Input.Password /> </Form.Item> {/* //8칸 이동하고 16칸을 쓰겠다 */} <Form.Item wrapperCol={{ offset: 8, span: 16 }}> <Button type="primary" htmlType="submit"> Submit </Button> </Form.Item> </Form> </Card> ); } 안녕하세요 강사님!! 위에서 15번째 줄에 있는 console.log("loaded Token: ", jwtAccessToken); 이 부분이 페이지의 콘솔창에서 두번이나 나타납니다... 왜 그런지 알 수 있을까요?? 새로고침을 했을때도 두번 나타나고 submit을 했을 때도 2번 출력됩니다. 아 ! 그리고 simplejwt토큰을 사용중 입니다!

  • docker
  • django
  • python
  • react
꺼넝 댓글 1 좋아요 0 조회수 714

안녕하세요. 다른 풀이도 풀었는데 괜찮을까요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

정답은 제대로 나오긴 했는데 시간 초과라던가 하는 문제가 없을까요? 4중 for문은 생각지도 못했네요..ㅠㅠ sudoku = [list(map(int, input().split())) for _ in range(9)] def solution(sudoku): length = len(sudoku) a, b, c, = list(), list(), list() # 행열 검사 for i in range(length): row, col = list(), list() for j in range(length): row.append(sudoku[i][j]) col.append(sudoku[j][i]) if len(set(row)) != 9 or len(set(col)) != 9: return "NO" # 3x3 격자판 검사 a.extend(row[0:3]) b.extend(row[3:6]) c.extend(row[6:]) if i == 2 or i == 5 or i == 8: if len(set(a)) != 9 or len(set(b)) != 9 or len(set(c)) != 9: return "NO" a, b, c, = list(), list(), list() return "YES" print(solution(sudoku))

  • python
  • 코딩-테스트
  • 코테 준비 같이 해요!
HTCho1 댓글 1 좋아요 0 조회수 461

1068번: 트리

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

제가 다음과 같이 코드를 작성했는데, 100%까지 가다가 틀립니다.. 어떤게 문제일까요? 반례를 제시해주실 수 있나요? 감사합니다. https://www.acmicpc.net/problem/1068 import sys input = sys.stdin.readline n = int(input()) g = list(map(int, input().split())) m = int(input()) cnt = 0 def DFS(x): g[x] = -1 for i in range(n): if g[i] == x: DFS(i) DFS(m) for i in range(n): if g[i] != -1 and i not in g: cnt += 1 print(cnt)

  • python
  • 코딩-테스트
  • 코테 준비 같이 해요!
이도열 댓글 1 좋아요 1 조회수 377

이진 탐색: 탐색 실패하는 경우 어째서 first > last인 경우가 나오나요?

미해결

홍정모의 따라하며 배우는 C언어 (부록)

17.15강 이진탐색 강의의 13:10부분입니다. 이진탐색에서 만약 탐색을 실패하는 경우 어째서 first >last라는 상황이 발생하는지 잘 모르겠습니다. 반복문을 반복해야할 상황이(탐색해야할 상황이) first <= last인 상황이라는 것을 알겠지만, first > last가 되는 상황은 어떻게 유도되는지 모르겠습니다. #include <stdio.h> int BSearch(int ar[], int len, int target) { int first = 0; int last = len - 1; int mid; while (first <= last) { mid = (first + last) / 2; if (target == ar[mid]) return mid; else { if (target < ar[mid]) last = mid - 1; else first = mid + 1; } } return -1; } int main(void) { int arr[] = { 1,3,5,6,7,9,11,13,15,19 }; int index; index = BSearch(arr, sizeof(arr) / sizeof(int), 3); if (index == -1) printf("해당값 없음\n"); else printf("타겟의 위치 : %d\n", index); return 0; }

  • c
  • 이진탐색
  • 탐색실패
픽린 댓글 1 좋아요 0 조회수 357

입력받는 함수 사용할때 디버거

미해결

홍정모의 따라하며 배우는 C언어

예제 그대로 따라하고 실행하면서 hello nice to meet you my name is i love you. 라고 입력했을땐 '.' 이 나올때까지 한번에 입력받는데 디버거로 확인해 보려할땐 한 줄씩 한줄씩 while문을 다 돌리고 나서 입력을 받더라고요. 보기엔 한번에 입력받는 것 처럼 보이지만 사실은 줄바꿈이 입력될때마다 한줄씩 끊어서 입력을 받는 건가요??

  • c
댓글 1 좋아요 0 조회수 294

메모리 레이아웃에서 스트림의 위치

미해결

홍정모의 따라하며 배우는 C언어

fopen이 반환하는것은 파일구조체의 포인터입니다. 이러한 fopen이 반환하는 파일구조체는 메모리 레이아웃에서 어디에 위치하고 있나요? fopen함수를 사용하면 생기는 파일 구조체를 파일스트림 이라고 이해하면 될까요? 그리고 fclose를 사용하는 이유는, 파일이 다 읽히지 않았을 때 버퍼에 남아있는 데이터가 오류를 일으키지 않게 하기 위함이라고 하셨습니다. 그 이유 외에 메모리 누수를 방지하기 위함도 있나요?

  • c
전민혁 댓글 1 좋아요 0 조회수 384

안녕하세요 리뷰복습하다가, 발견했습니다

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

최근에 다시 자바스크립트로 돌리면서, 기존에 파이썬으로 했던 것들 다시 모두 자바스크립트로 풀어보면서 문제 풀어보니, 발견했습니다. 이거 첫번째 가정을, 그리디로 접근하면 해결 안되는 문제인것같습니다. 이후 가정들은 당연히 그리디 관념으로 최적값 찾을 수 있는데, 첫번째 가정부터 그리디로 접근하면 해결되는 문제가 아니라서 어긋나기때문에, 그리디관념이 통하지 않는 문제인것같습니다. 완전탐색해버리거나, 시간 더 줄이려면 백트래킹 가지치기 해야하는 문제인것같습니다. 입력입니다! 7 172 67 183 65 179 61 178 62 177 63 170 72 181 60 기존 풀이(무조건 183선발) 가 내주는 답 : 3 감독 현수가 원할 것 같은 답 : 6 그리디로 가장 키 큰 사람 무조건 선발하는 과정이 풀이에서 오류인것같습니다. 183 선발 가정하고 cnt 값 구하고, 그다음 181 선발 가정하고 cnt값 구하고, 쭉 다음 순으로 선발 가정하고 cnt값 구하는데, 만약 어떤 사람 선발 가정하고 cnt값 구하는데 남은 사람 수 다 합해도 기존 Max cnt보다 적을 경우, 백트레킹 가지치기로 break 혹은 return 끊어버리는게 맞는것같습니다. 풀이1. 이중포문 const input = require("fs") .readFileSync("input.txt") .toString() .trim() .split("\n"); const n = parseInt(input[0]); const arr = Array.from(Array(5), () => []); for (let i = 0; i < n; i++) { arr[i] = Array.from(input[i + 1].trim().split(" ")).map((v) => parseInt(v)); } function solution(n, arr) { arr.sort((a, b) => b[0] - a[0]); let cnt = 0; let largest = 0; let res = 0; for (let i = 0; i < n; i++) { largest = arr[i][1]; cnt += 1; if (res >= n - i) { break; } for (let j = i + 1; j < n; j++) { if (arr[j][1] > largest) { largest = arr[j][1]; cnt += 1; } } res = Math.max(res, cnt); cnt = 0; } console.log(res); } solution(n, arr); 풀이2. DFS const input = require("fs") .readFileSync("input.txt") .toString() .trim() .split("\n"); const n = parseInt(input[0]); const arr = Array.from(Array(5), () => []); for (let i = 0; i < n; i++) { arr[i] = Array.from(input[i + 1].trim().split(" ")).map((v) => parseInt(v)); } let cnt = 0; let res = 0; //const list = []; function DFS(s, weight) { if (s < 0) return; if (cnt + n - s <= res) { cnt -= 1; s -= 1; return; } for (let i = s; i < n; i++) { if (arr[i][1] > weight) { cnt += 1; //list.push(arr[i][1]); DFS(i + 1, arr[i][1]); //list.pop(); } } res = Math.max(res, cnt); //console.log(list); cnt -= 1; } function solution(n, arr) { arr.sort((a, b) => b[0] - a[0]); DFS(0, 0); console.log(res); } solution(n, arr);

  • python
  • 코딩-테스트
  • 코테 준비 같이 해요!
ncprog1 댓글 2 좋아요 1 조회수 456

로드맵상 다음강의? 크롤링? 퀀트1?

해결됨

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

안녕하세요.. 멋지고 깔끔한 강의 덕분에 2주만에 완강했습니다! 좋은 강의 준비해주셔서 감사합니다. 로드맵상 다음강의가 퀀트part1 으로 되어 있는데, 크롤링을 모르고 가도 상관이 없을까요? 아니면 크롤링 강의 먼저 듣고 가는게 나을까요?

  • python
wk 댓글 1 좋아요 0 조회수 272

질문! int와 main(), 그리고 return에 대해서

미해결

홍정모의 따라하며 배우는 C언어

안녕하세요 c언어를 공부 중 인 학생입니다. 일단 int main()은 '메인 함수가 프로그램 종료 시 return값을 정수형 으로 반환 받겠다.' 의 의미 인 건 알겠습니다. 그래서 main함수 앞에 정수형인 int 가 붙는 것 이고요. 그런데 여기서 return값에 대해 궁금한게 프로그램을 성공적으로 종료 시켰다 라는 의미로 값 0을 반환 하는데 굳이 반환 값이 꼭 0 이여야 하나 궁금합니다. 0이 아니여도 1, 4, 5, 7, 같은 다른 정수를 반환 시켜도 프로그램은 정상적으로 작동 하는 거 같은데 0과 다른 정수들의 차이점을 모르겠습니다. int main() 함수에서 return 값을 반환 시킬때 꼭 0을 쓰는 이유가 있나요?

  • c
k0wjsdyd26 댓글 2 좋아요 0 조회수 1042

jsconfig 오류 질문입니다!

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

{ "compilerOptions": { "baseUrl": "src" }, "include": ["src"] } keonhongkoo@keonhongui-MacBookAir frontend % yarn start yarn run v1.22.19 $ react-scripts start node:internal/modules/cjs/loader:1325 throw err; ^ SyntaxError: /Users/keonhongkoo/Desktop/instagram/frontend/jsconfig.json: Unexpected token / in JSON at position 75 at parse (<anonymous>) at Module._extensions..json (node:internal/modules/cjs/loader:1322:39) at Module.load (node:internal/modules/cjs/loader:1117:32) at Module._load (node:internal/modules/cjs/loader:958:12) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at getModules (/Users/keonhongkoo/Desktop/instagram/frontend/node_modules/react-scripts/config/modules.js:126:14) at Object.<anonymous> (/Users/keonhongkoo/Desktop/instagram/frontend/node_modules/react-scripts/config/modules.js:142:18) at Module._compile (node:internal/modules/cjs/loader:1254:14) at Module._extensions..js (node:internal/modules/cjs/loader:1308:10) Node.js v18.14.1 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 이렇게 결과가 출력되는데 해결책이 안보이네요... vscode도 재시작해봤습니다ㅠ

  • docker
  • python
  • react
  • django
꺼넝 댓글 1 좋아요 0 조회수 811

함수호출규약 중에서 fastcall 관련 질문 드립니다!

해결됨

독하게 되새기는 C 프로그래밍

fastcall이라는 규약이 메모리에 매개변수를 저장하는 것이 아니라, 레지스터 쪽에 매개변수를 저장해서, 메모리에 매개변수를 다시 저장할 필요가 없도록 만들기 때문에 속도가 빨라진다는 것으로 이해를 했습니다! 그런데, 제가 메모리를 찾아보니까 수업 중에서 예제로 드셨던 add 함수의 매개변수 param1, param2가 메모리에서 똑같이 잡혔는데, 이건 어떻게 이해하면 좋을까요? 디스어셈블리로 확인해보니까 ECX, EDX 레지스터에 각각 param값들이 저장이 잘 되는 것은 확인을 했는데, 상황이 그렇다면 fastcall인 경우 레지스터에만 값이 들어가면 될 것 같은데, 이게 똑같이 메모리에서 매개변수의 주소가 잡힌다는 것이 약간 의아합니다!

  • c
  • kernel
  • secure-coding
  • kernel
richard218 댓글 1 좋아요 0 조회수 517

질문드립니다.

미해결

남박사의 파이썬 기초부터 실전 100% 활용

사용자 입력 예외처리를 하고 있는데, 1)문자 입력 시 오류 2)3자리 숫자가 아닐 경우 오류 다음과 같이 코드를 짰는데 1)의 경우 except 부분에서 "입력 오류"를 출력하지만 2)의 경우 "입력오류"가 출력되지 않고 그냥 재입력하게 되네요. 혹시 이유를 알 수 있나요? 또한 문자 입력 시 "숫자만 입력 가능합니다"를 출력 두자리수 입력 시 "세 자리 수를 입력하세요"를 출력 하도록 하려면 코드를 어떻게 수정해야 할까요? 감사합니다.! #세 자리 숫자만 입력할 수 있게 하는 함수 def input_check(msg, casting = int): while True: try: num = input(msg) # 사용자 입력 num_str = str(num) #맨 앞의 수가 0일경우 0이 잘려버리기 때문에 str을 따로 저장 if(casting(num) and len(num) == 3): return num_str except: print("입력 오류") continue

  • 웹-크롤링
  • 웹-크롤링
  • python
Poki 댓글 2 좋아요 1 조회수 404

아나콘다 버전 관련 문의 드립니다~!

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

안녕하세요~! 아나콘다를 설치하면서 두가지 정도 질문이 있습니다 1) 2023.02.22날짜로 아나콘다 최신판을 설치하는데 그림과 같이 옵션사항에 환경변수 체크가 되지 않습니다 ㅠㅠ 업데이트 되면서 바뀐것인지 아나콘다 최신판에서 이 옵션을 선택하지 않아도 괜찮을까요?? 2) 2023.02.22날짜로 아나콘다 최신판에서는 파이썬 버전이 3.9버전인데 파이썬 공식버전으로는 3.11까지 배포가 되었습니다 버전 차이가 많이 나도 아나콘다를 설치하는게 사용에 더 편리할까요??

  • python
  • django
  • docker
  • react
서성길 댓글 3 좋아요 0 조회수 1297

인기 태그

인프런 TOP Writers

주간 인기글