묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
고생했던? 케이스에 대해 선생님의 코드가 어떻게 들어맞는 지에 대한 질문이 있습니다. ㅠ
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?안녕하세요!강의 잘 듣고 있습니다.백준 1461 그리디 마지막 문제에 대한 질문이 있는데요. 보기 전에 풀어보긴 했는데,두더지 잡다가 어떻게 된 느낌이긴 해요..음,, 아직 습관이 안 고쳐지기는 했는데 정의하고 분석하고 따져보고 그려본 다음에 해야 하는데,, 그 제가 처음 푼 방식은리스트 요소를 지워가며 해결하는 방식인데요양/음수가 m으로 떨어지지 않는 나머지 경우를 먼저 따져 합계에 더하고, 제거한 뒤먼 데부터 다녀오는데, 최댓값을 계속 갱신해서가장 먼 거리를 나중에 빼주는 방식으로 했어요..m으로 나누어 떨어지지 않는 경우에 대한 처리를 나중에 추가했는데요선생님의 코드가 어떻게 그 경우도 잘 처리하는 지 분석이 잘 안되어서..설명 부탁 드려요.. 아! 저번 설명 너무 감사합니다 더불어 약간 공부하는 루틴?이랄까? 그런 것도 말씀해 주실 수 있는 게 있다면 혹시 말씀 부탁드려요..(코테 공부도 그렇고 다른 것도 그렇고..) 아래는 제가 처음 정답 받은 코드입니다.(코드가 지저분함에 죄송해요..)import sys input = sys.stdin.readline # 방향을 결정하고 상자 들고 다음에 처음 갈 책 위치를 반환합니다. def getPos(arr): global direction maximum = max(map(abs, arr)) if maximum in arr: if len(arr) > m: direction = False if min(arr) >= 0: direction = True return 0 for i in range(len(arr) - 1, -1, -1): if arr[i] < 0: return i else: direction = True for i in range(len(arr)): if arr[i] >= 0: return i else: if len(arr) > m: direction = True if max(arr) < 0: direction = False return len(arr) - 1 for i in range(len(arr)): if arr[i] >= 0: return i else: direction = False for i in range(len(arr) - 1, -1, -1): if arr[i] < 0: return i return -1 n, m = map(int, input().rstrip().split()) arr = list(sorted(map(int, input().rstrip().split()))) cnt = 0; direction = True; reach = 0; plusCount = 0; minusCount = 0 #양수/음수 따로 헀어야 좋았는데, 하다보니 개수 세는 걸 만들었어요.. def count(): global plusCount, minusCount for i in arr: if i >= 0: plusCount += 1 elif i < 0 : minusCount += 1 count() #양수 m으로 나누어 떨어지지 않을 경우에 대한 처리입니다. if plusCount % m != 0: mini = min(i for i in arr if i >= 0) idx1 = arr.index(mini) idx2 = min(arr.index(mini) + (plusCount % m), len(arr)) reach = arr[idx2 - 1] for i in range(idx1, idx2): arr.remove(arr[idx1]) cnt += reach * 2 #음수 m으로 나누어 떨어지지 않을 경우에 대한 처리입니다. if minusCount % m != 0: maxi = max(i for i in arr if i < 0) idx1 = arr.index(maxi) idx2 = max(arr.index(maxi) - (minusCount % m), -1) far = abs(arr[idx2 + 1]) for i in range(idx1, idx2, -1): arr.remove(arr[idx2 + 1]) cnt += far * 2 reach = max(reach, far) # 이럴 필요 없는데, 돌면서 먼 데 구하고 그 안쪽? 지우는 방식으로 했어요.. while arr: pos = getPos(arr) far = abs(arr[min(len(arr) - 1, pos + m - 1) if direction else max(0, pos - m + 1)]) for i in range(m): if not arr: break arr.remove(arr[pos]) if not direction or pos == len(arr): pos = max(pos - 1, 0) cnt += far * 2 reach = max(reach, far) print(cnt - reach)
-
해결됨우아한 고성능 프로그래밍 언어 Rust 입문 및 활용
튜플과 구조체 차이 설명에 관한 질문
안녕하세요. 좋은 강의 감사합니다.12번째 구조체 기초 강의에서 튜플과 구조체의 차이에 대해서 말씀해주셨는데, 여기서 두 가지의 질문이 있습니다.첫 번째로는 강의에서 튜플과 구조체의 차이에 대한 예시로, "구조체는 이름을 따로 붙여줌으로서 Color가 들어갈 자리에 Point가 들어가거나 Point가 들어갈 자리에 Color가 들어가게 되는 문제를 일으키지 않는다" 라고 하셨습니다.이때, 앞선 6번째 강의에서 튜플을 정의했던 내용을 활용하여let point: (i32, i32, i32) = (2, 2, 2);let color: (i32, i32, i32) = (255, 255, 255);하는 식으로 정의를 한다면 말씀하신 문제에 대해서는 방지가 가능하다고 생각하는데, 제가 어느 부분에서 잘못 이해하고 있는 것인지 궁금합니다.두 번째로는 일반 Struct를 정의하실 때는 struct User { name: String, email: String, active: bool, }으로 뒤에 세미콜론을 따로 사용하지 않으셨는데,튜플 구조체에서는 struct Color(i32, i32, i32);처럼 뒤에 세미콜론을 사용하신 부분에서,명령문과 표현식에 있어 세미콜론 유무에 대한 차이가 있다는 것은 어느 정도 알겠지만, 이 부분에선 어떤 이유로 차이가 있는 것인지 궁금합니다.감사합니다!
-
해결됨GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
리액트에서 적용할 때 질문있습니다.
안녕하세요강사님한테 배운 코스를 리액트에 접목시켜보고 싶은데요 바뀌는 부분이 많을까요? 부족한 제 생각으로는리액트는 커스텀훅을 작성해줄수있다보니까로그인, 어드민 관련부분에서도 변경해야하는부분이있을거같고..stores부분 코드를 그대로 복붙하기에는 무리가 있을까요?따로 분류해가면서 작성해줘야할까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의 진행이 어떻게 되는건지 질문드립니다
1강부터 14강까지 잘따라오다가 15강 21분 29초부터BP_ABPlayerController 블루프린트를 켜보니 이렇게 구현되어있는 화면이 나오는데강사님하고 전혀 다른화면이 나옵니다. 강사님이 15강에 올려주신 파일에서 가져와서 실습을 진행해야하는건가요 ?
-
미해결[웹 개발 풀스택 코스] HTML&CSS 기초
html style 속성 질문입니다!
style 속성 강좌 11:41 초 별도의 .css 파일로 만들어서 사용하는 것을 external style 이 문장이 주석으로 지정된 거 같은데라이브 채널에 왜 표기되는 지 궁금합니다!
-
미해결[신규 개정판] 코딩 입문자를 위한 파이썬 완벽가이드
실습문제 9 쿼리
문제에 풀어주신 쿼리랑 이 쿼리랑 비교했을 때많이 비효율적인가요? # 9 while True : password = int(input('비밀번호를 입력하세요.')) if password == 1234 : print('로그인 성공!') break else : print('로그인 실패!')
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Lock-Free Stack #2 강의 질문
TryPop에서 compare_exchange_weak를 지난 시점에서 oldHead에 저장된 노드는 나만 가지고 있는게 아닌가요? 다른 애들은 접근하려고해도 이미 head가 바뀌어서 compare_exchange_weak를 통과하지 못하고 다음 것을 가져오는게 아닌가요?
-
해결됨손에 익는 Next.js - 공식 문서 훑어보기
next/image에 대한 질문
질문 1. next/image는 (Image컴포넌트) 웹사이트의 로딩 성능에 많은 영향을 미치는 이미지를 사용하는 것만으로도 큰 개선을 볼 수 있도록 해주는 컴포넌트이라서 비용이 비싸다고 하는데 그렇다면 AWS로 배포했을 때 next/image 때문에 비용이 더 올라가나요?질문 2. next/image가 비용이 비싸다면 어떤 경우에 사용하는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
스캔범위질문
@SpringBootApplication public class CoreApplication { public static void main(String[] args) { SpringApplication.run(CoreApplication.class, args); } }Coreapplication을 실행을 하면 1번과 2번중 뭐가 맞는 건가요??1. AutoConfig에서 @Configuration이 붙은 것은 스캔하지 않도록 설정했으니 AppConfig의 빈은 생성되지 않는다@SpringBootApplication 가 스캔을 하기 때문에 AppConfig의 빈도 성성된다. @Configuration @ComponentScan( basePackages = "hello2.core", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { }
-
해결됨실리콘밸리 엔지니어와 함께하는 OpenAI API (ChatGPT)
강의 자료 받을수 있을까요?
강사님 강의 잘 듣고 있습니다. 혹시 강의 과정에서 사용하신 강의 자료 통합본 형태로 받아 볼수 있을 까요? 현재 일부 강의만 해당 자료만 받을수 있어서 문의 드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제 좀 고치세요.
사이트 내 주어진 문제랑 영상에서 푸는 풀이랑 아예 다른 수준이네요. 자꾸 오답나서 한참 풀었네요;;;커뮤니티보니까 관련 글이랑 댓글 많은데 왜 문제 수정을 안하는지 이해가 안가네요.문제 수정 부탁드립니다.
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
디스코드 접속 관련
질문을 남겨주실 때 아래 부분을 같이 남겨주시면 더 빠르게 상황을 파악하고 답변드릴 수 있어요 🙂어떤 강의를 들으면서 발생했나요? BigQuery 활용편어떤 문제가 생겼나요? 디스코드 접속 불가어떤 시도를 해보셨나요? 강의 중 제공되는 링크로 디스코드 접속시 무한 로딩 발생어떤 쿼리를 사용했나요? - 환경이 어떻게 되나요?(윈도우, 맥 중 택1, 크롬 같은 웹브라우저 환경) 윈도우
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
컨택스트 스위칭
컨택스트 스위칭시에 CPU는 인터럽트 핸들러의 명령어를 실행하니깐 사실상 유휴시간은 아니지않나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL(Querydsl) orderby 에 집계함수
영한님 안녕하세요강의 잘 듣고 있는데, 서브쿼리를 사용하려다.. where, having절에만 사용가능하기에 이 문제를 어떻게 해결할까 고민하다가 질문드립니다.. <문제>현재 엔티티는Post(게시글) 엔티티 필드 : postId, content, createdAt , 조회수,댓글 수, 좋아요 수Post view(게시글 조회) 엔티티 필드 : postViewId, user,post, 조회수,댓글수,좋아요수이렇게 있습니다. ( post view 엔티티는 특정 유저그룹이 어떤 게시글을 본 히스토리를 관리하고 그 히스토리를 통해 게시글의 인기도를 측정하기 위함입니다.)이러한 상황에서 ,게시글의 조회수, 댓글 수, 좋아요 수, 특정 유저그룹이 해당 게시글을 조회한 수, 특정 유저그룹이 해당 게시글에 댓글 단 수, 특정 유저그룹이 해당 게시글에 좋아요한 수 로 정렬하고, (where 조건 절은 다 구현됐다는 가정)groupby는 게시글의 pk 로만 하지만, 실제로 dto에 projections.bean()활용해서 매핑할 필드들은 content, createdAt 등 여러가지 컬럼이 추가로 있습니다. 이러한 경우라면, 우선 특정 유저그룹이 해당 게시글에 댓글 단 수, 특정 유저그룹이 해당 게시글에 좋아요한 수로 정렬하려면, 집계함수 sum을 활용해야하기 때문에 orderby절에 집계함수가 써야하고, 그러면 당연히 groupby를 써야하는데 이 때, post의 모든 필드들로 groupby 하는 것보다 pk로만 group by하는게 의미 있다고 생각해서 select 절에는 select postId 만 올 수 있을텐데그렇다면 이 postId의 리스트를 받아서 다시 이 postId로 다시 post entity를 조회해서 나머지 content, createdAt 값을 받는것이 최선일까요?(이 방법도 그런데 정렬이 유지되지않아서 결국 다시 집계함수로 정렬해야만할까요?) 이렇게 하면 두 번 쿼리를 날리기 때문에 별로 좋지 않은 방법이지 않을까라는 생각이 들지만 jpa는 from 절 서브쿼리를 지원하지않고, 다른 방법이 떠오르지 않아 여쭤봅니다. 조금 중구난방으로 질문한 감이 없지 않아 있지만..영한님 답변 부탁드립니다..ㅠㅠ
-
해결됨초보자를 위한 쉬운 파이썬 기초와 데이터 분석
5번째 강의 jupyter notebook 사용법 에서 19초 부분 질문
19초에 보면 이것들이 다 세팅되어있다는 존재하에 강의를 진행한다고 하셨는데여. 탐색영역에서 현재 있는 폴더와 파일들의 ipymb파일들이 쭈욱 나오는데 이건 어디서 받는건가요? 28초에 BS코드를 열어가지고 bs코드창을 띄우셨는데 이건 어떻게 띄우는건가요?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
이번 강의에선 display flex가 무조건 적으로 필요한건가요 ?
square에다가 포지션 absolute를 주고 수직중앙 수평중앙으로하려고했더니 span이 중앙이아닌 우측하단으로 취우쳐져있고 transform으로 수직중앙 시키고 키프레임 애니메이션으로 돌릴려고하니,, transform이 중첩되어있어서 또 걸리네요. flex를 꼭 사용해야할까요 ?
-
미해결대세는 쿠버네티스 (초급~중급편)
vagrant box add rockylinux-repo.json 오류
안녕하세요, 설치 과정에 오류가 있어 글 남깁니다.사진에 빨간 화살표로 표시한 스크립트를 cmd에서 실행할 때, Progress:0% 에서 오르지 않습니다. [노트북 환경]윈도우 11 Home윈도우 계정 : Microsoft 계정 Xlocal 한글이름 계정RAM 32GBCPU Intel i7-11800그래픽 GeForce RTX 3050 Laptop GPU64비트
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
커밋 관련 질의
카프카 관련하여 문의드립니다.현재 프로젝트 디폴트 설정이 자동 커밋인데,리스너를 내리거나 서버를 내릴때에 예외적으로 커밋을 치고 싶습니다.정리하면 평소에는 자동커밋모드로 계속 돌아가는데, 리스너를 내리거나 서버를 내리는경우에는 커밋을 하고 싶습니다.이런 경우 수동커밋이 가능한지 문의드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
vector<string> <--> string 자료형을 썼을 때의 차이
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.<1. vector<string>자료형 사용>#include <bits/stdc++.h> using namespace std; //1159 - 농구 경기 int N; vector<string> name; int cnt[26]; vector<char> ret; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int flag=0; cin>>N; for(int i=0;i<N;i++){ cin>>name[i]; cnt[(int)name[i][0]-'a']++; } for(int i=0;i<26;i++){ if(cnt[i]>=5){ ret.push_back((char)i+'a'); flag=1; } } if(flag){ for(char c:ret) cout<<c; return 0; } cout<<"PREDAJA"<<'\n'; return 0; } <2. string 자료형 사용>#include <bits/stdc++.h> using namespace std; //1159 - 농구 경기 int N; string name; int cnt[26]; vector<char> ret; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int flag=0; cin>>N; for(int i=0;i<N;i++){ cin>>name; cnt[(int)name[0]-'a']++; } for(int i=0;i<26;i++){ if(cnt[i]>=5){ ret.push_back((char)i+'a'); flag=1; } } if(flag){ for(char c:ret) cout<<c; return 0; } cout<<"PREDAJA"<<'\n'; return 0; 다시 풀다 보니 이름을 계속 저장할 필요가 없음을 인지하여 string 자료형인 하나의 변수로 계속 초기화하도록 수정하였습니다. 하지만 첫 번째 코드가 실행되지 않는 명확한 이유를 잘 모르겠습니다. 설명해주시면 정말 감사하겠습니다. 좋은 강의 항상 감사드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
실행 파일을 만들 때 모든 파일이 동일한 Dir에 있어야 하나요?
실행 파일을 생성시에 사용된 모든 파일이 동일 디렉토리에 있어야 하나요?(재활용을 위해 Function을 만들어서, Function 폴더에 저장함) 아래는 제가 작업했던 내용 및 에러입니다.============================ Python 폴더 아래와 같이 폴더가 있습니다.ProjectGUIFunctionProject 폴더에 실행할 a.py 파일이 있고a.py에서는 GUI, Function 폴더에 있는 ui와 function 들을 사용합니다. vs code 상에서 실행하면 문제 없이 실행이 됩니다. 실행 파일을 만들기 위해 Project dir로 이동하고, 아래와 같이 실행하여 exe 파일을 생성했습니다.E:\python\Project> pyinstaller -w -F 네이버부동산_상가.py 파일을 실행하니 아래와 같이 나타납니다. import sys, os try: sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) except: notebook_dir = os.getcwd() sys.path.append(os.path.dirname(os.path.abspath(notebook_dir))) from PySide6.QtWidgets import QApplication, QWidget, QMessageBox from GUI.naverland_SG_ui import Ui_Form from GUI.Naver_map import * from Functions.Naver_land import * import sys import requests import json import math class MainWindow(QWidget, Ui_Form): def __init__(self): super().__init__() self.setupUi(self) self.file_path = os.getcwd() + r'\data' # 지역 초기화 self.loc1.clear() self.loc1.addItem('') self.loc2.clear() self.loc2.addItem('') self.loc3.clear() self.loc3.addItem('')