묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코딩테스트 [ ALL IN ONE ]
unique paths 코드 시간복잡도에 관련해서 궁금한 것이 있습니다.
우선 강사님께서 풀어주신 top-down 코드는 다음과 같습니다.class Solution(object): def uniquePaths(self, m, n): memo = {} def dfs(r, c): if (r, c) == (0, 0): # 출발점에 도달한 경우 return 1 if (r, c) not in memo: # 메모이제이션에 값이 없는 경우 계산 paths = 0 if r - 1 >= 0: # 위쪽 셀에서 오는 경우 paths += dfs(r - 1, c) if c - 1 >= 0: # 왼쪽 셀에서 오는 경우 paths += dfs(r, c - 1) memo[(r, c)] = paths # 결과 저장 return memo[(r, c)] # 결과 반환 return dfs(m - 1, n - 1)이 코드는 grid에 해당하는 함수만 호출하고, 중복되는 호출은 memo에 저장하기 때문에 총 O(M*N)이 됩니다. 다음은, 디스코드의 다른 사람이 올려주신 코드를 참고해서 조합론을 적용한 코드입니다.class Solution(object): def uniquePaths(self, m, n): memo = {} def fact(x): if x <= 1: return 1 if x not in memo: memo[x] = fact(x - 1) * x # factorial의 결과값을 메모리에 저장 return memo[x] return fact(m + n - 2) / (fact(m - 1) * fact(n - 1)) # fact(m + n - 2) 부분만 호출하고, 분모는 캐싱하므로 시간복잡도는 O(M+N)분자에 해당하는 부분만 함수를 호출하기 때문에 시간복잡도는 O(M+N)이 됩니다. 우선 제가 궁금한 것은 2가지입니다.1) 위의 두 코드를 비교했을 때, 수학적으로 접근한 코드가 시간복잡도가 더 낮은데요 항상 dfs, bfs를 먼저 쓰는게 좋은 것은 아닌가요?2) 강의에서는 조합론을 이용한 방법이 198C99 = 약 2*10^58이여서 완전탐색은 안된다고 하셨는데, 실제로 제출했을 때는 제출이 됬습니다. 왜 이런 차이가 발생한건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
창은 뜨는데 맵이 나타나지 않아요.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Algorithm { class Board { const char CIRCLE = '\u25cf'; // \u25cf = ● public TileType[,] _tile; // 배열 public int _size; public enum TileType { Empty, Wall, } public void Initialize(int size) { _tile = new TileType[size, size]; _size = size; for(int y = 0; y < _size; y++) { for(int x = 0; x < _size; x++) { if (x == 0 || x == _size - 1 || y == 0 || y == _size - 1) _tile[y, x] = TileType.Wall; else _tile[y, x] |= TileType.Empty; } } } public void Render() { ConsoleColor prevColor = Console.ForegroundColor; for (int y = 0; y < _size; y++) { for (int x = 0; x < _size; x++) { Console.ForegroundColor = GetTileColor(_tile[y, x]); Console.Write(CIRCLE); } Console.WriteLine(); } Console.ForegroundColor= prevColor; } ConsoleColor GetTileColor(TileType type) { switch(type) { case TileType.Empty: return ConsoleColor.Green; case TileType.Wall: return ConsoleColor.Red; default: return ConsoleColor.Green; } } } }using System; namespace Algorithm { class Program { static void Main(string[] args) { Board board = new Board(); board.Initialize(25); Console.CursorVisible = false; // 커서가 안 보임 const int WAIT_TICK = 1000 / 30; int lastTick = 0; // 마지막 시간 while (true) { #region 프레임 관리 // 시스템이 시작되고 난 후 시간으로 넣음 int currentTick = System.Environment.TickCount; // 1000/30이라고 쓴 이유는 ms(밀리세컨드)떄문에 // 1/30라고 안 쓰고 1000을 곱해줘서 작성한다. if (currentTick - lastTick > WAIT_TICK) continue; lastTick = currentTick; #endregion // 렌더링 Console.SetCursorPosition(0, 0); // 커서 위치를 (0, 0)으로 설정 board.Render(); } } } }
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
postman socket io enter_chat
안녕하세요 ㅎ 정상적으로는..동작하는것 같은데 사진처럼 초록색으로 response enter_chat 값이 나오는게 아니라빨간색으로 enter_chat 이 나옵니다.이유가 뭘까요 ?? User 1 /chats -> enter_chat 으로 1번방과 2번방에 들어가고User 2 /chats -> enter_chat 2번User 3 /chats -> enter_chat 1번 이후 send_message 로 1번방에만 message 전달하게 되면User 1/chats , User 3/chats 만 제대로 받아지고 정상적으로 테스트가 됩니다.하지만 강사님과 다르게 저는 enter_chat 에 들어갈때 위 사진과 같이 빨간색이 나오는데 이유가 뭘까요 ?? ㅎㅎ
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
'str' object is not callable 에러
데이터 구조 예제를 실습하던 도중 강의영상과 똑같이 작성했는데도 에러가 뜨는데 원인을 모르겠어서 질문 드립니다.
-
미해결
구조체 scanf_s 질문
안녕하세요. 구조체 코딩 공부하다가 오류가 계속 발생해서 무엇이 문제인지 모르겠어서 질문드립니다 ..ㅠscanf_s("%s" , p_friend->name, 메모리 크기)를 해야 되는거 같은데.. (unsigned int)sizeof(p_friend->name)를 추가하여 실행해봐도 실행이 안됩니다 ㅠㅠ어떤 코드를 작성해야하는 것이 맞을까요..? 구글링해도 1시간째 고민을 해봐도 답이 없어 질문드립니다 !
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
서버에 피해가 가지않도록 크롤링할 수 있는 방법은 없을까요?
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 서버에 피해가 가지않도록 크롤링할 수 있는 방법은 없을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
조건문 부분 강의에서 낚시라고 한 부분이 궁금해요
자세한 설명이 궁금합니다.a = 10, b=5, c=8if(a!=b!=c)에서 a!=b를 먼저 계산한 값이 false(0)그럼 후에 비교하는값이 0 != 8이 되는건가요?
-
미해결CloudNet@ - Amazon EKS 기본 강의
지금 시점에서 1.26버전은 추가지원만 가능한데, 그 이상의 버전으로 할경우 문제가 될까요?
지금 시점에서 1.26버전은 추가지원만 가능한데, 그 이상의 버전으로 원클릭배포 환경값을 입력해서 구성해서 실습하면 문제가 될게 있을까요? (ex. 1.30, 1.29 ..)
-
미해결웰컴 투 태블로 월드
샘플데이터 시트3 연결 방법
안녕하세요이전 게시글 중 해결 안된 부분이 있어 추가 질문 남깁니다! 블로그 글 보고 데이터 연결했는데 샘플데이터 시트3(managers)을 연결하는 방법을 모르겠습니다 ㅠㅠ어떻게 연결하면 될까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
조합->이분탐색
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 조합이 아닌 이분탐색처럼 풀이해보게 되었는데요 이 경우가 배열을 앞뒤로 한 번만 읽으면 되니까 O(n)으로 시간복잡도 차원에서 더 효율적인지 궁금합니다.#include <bits/stdc++.h> using namespace std; //1940 - 주몽 int n,m,input,cnt; vector<int> v; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>m; for(int i=0;i<n;i++){ cin>>input; v.push_back(input); } sort(v.begin(),v.end()); int left =0, right = n-1; while(left<right){ int sum=v[left]+v[right]; if(sum==m){ cnt++; left++; right--; } else if(sum<m) left++; else right--; } cout<<cnt<<'\n'; return 0; }ㅇ
-
미해결홍정모의 따라하며 배우는 C++
strcmp 함수 구현 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래와 같이 strcmp 함수를 구현하였습니다.혹시 가능하다면 비효율적인 부분이 있다면 알려주실 수 있으실까요?
-
미해결그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법
강의 3-3 엑셀 잔존율 활용 질문이 있습니다!
질문1)강의에서 1~6월은 1년이 넘은 데이터라 잔존율에 대한 데이터가 없어서 전혀 모르는 값(노란색셀)이라고 말씀주셨는데, 왼쪽표에 보면 1월~12월까지 데이터가 있는거 아닌가요?ㅜㅜ 질문2) 그리고 왼쪽표의 수치를 참고해서 만들면 1월부터 12월까지 하늘색 셀 이어야 되는거 아닐까요?왜 7월부터 다음해 6월까지만 잔존율 개선을 가정하는 수치(하늘색 셀)일까요?(보통 1년치 트렌드,행사는 알고 있으니 잔존율은 참고 할 수 있다고 말씀주신 부분은 들었습니다) 읽어주셔서 감사합니다!
-
미해결[발표스피치] 대기업 임직원, 스타트업 대표들이 배우는 청중을 사로잡는 발표 방법!
[발표의 설득력] 강의 내용 관련 질문
저는 주로 의학 용어나 연구 용어를 사용하여 발표, 강의를 하는 직업을 가진 사람입니다.연구 용어를 사용하는 발표는 설득력이 중요하고,의학용어를 사용하는 강의는 설명력이 필요하더라구요.선생님의 강의를 보고 적용해보려 하니, 저는 설득력을 높이기 위해 비유, 표현, 설명을 사용해야 하는 내용을 구별하는 것이 어려웠습니다.발표, 강의자료 중에 어떤 내용을 쉽게 설명해야 할지 모르겠어요.자료의 내용을 쉽게 설명하기 위해서 풀어쓰거나 비유, 표현, 설명을 하면 오히려 문장이나 말이 길어지거나 지저분해 지는 경우를 많이 경험했거든요.그래서 글의 문장이나 말을 짧게 줄이면 그 의미가 다 들어가게 하기 위해서 선택하는 표현이 결국 한자거나, 어려운 표현이더라구요.이런 점을 개선할 수 있는 방법이 있으면 알려주세요^^
-
해결됨
API가 문제인 건 아닌 것 같은데...어떻게 해결해야 할까요
강의 시작하고 얼마 안돼서 오류가 발생하는 것을 확인할 수 있었습니다.음... 일단 GPT랑 커뮤니티에서 찾아보고는 있는데, 아직 해결되지 않았습니다...해당 문제로 인해서 에러가 발생하고 있습니다 ㅜ.ㅜ
-
미해결3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]
질문있습니다
강의 중에 웹사업 1개에서 응용프로그램 사업100개 +안드로이드 사업100개라는 게 있습니다. 아쉽게도 저는 이게 영상을 보고 도 무슨 말인지 모르겠습니다. 이게 뭘 설명하시는 걸까요? ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의 순서 질문
기본편 들은 상태인 지금 활용 1만듣고, data jpa 강의 들어도 되나요?jpa를 당장 써야돼서 data jpa 들은 후에 활용2를 들으려고 하는데요, 괜찮을련지 궁금하네요.
-
해결됨파이썬으로 뭘 만들지? 남박사의 파이썬 알쓸파잡
if start_index < end_index: 맞는건가요?
항상 startIndex가 endIndex보다 작다라는 게 보장되지 않나요? endIndex = r.text.find("};", startIndex + 1) if 0 <= startIndex else 0 여기 구문에서 endIndex는 항상 startIndex보다 큰 값을 가지는 게 보장되는데, 왜 if startIndex < endIndex: 이 조건을 추가해주나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. was 에 예외가 던져지면 BasicErrorController 를 호출해서 적절한 뷰를 찾아 주는건 알았습니다 근데 was 에 정상 요청이 도착하는데 그 안에 4xx 이나 5xx같은 에러 상태코드가 있는경우 response에 아무런 내용을 채우지도 않고 모델앤뷰도 아무것도 없는걸 리턴할경우를 보내보았는데 이런 뷰는 어디서 생기는걸까요 ? 기본 브라우저에서 제공하는 화면인걸까요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님거의 모든 반례를 넣어봤는데 다 성공했어요. 근데 막상 제출하면 틀렸다고 뜨는데 왜그러는지 잘 모르겠네요 ㅜㅜ반례주시면 감사하겠습니다!http://boj.kr/9ec2d67f80014168b8c8ba09a5c8e8e2
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
백준에서는 recursion error가 납니다
안녕하세요 ! 동일한 코드로 선생님의 채점기에 돌렸을 때는 100점이 나왔는데 백준에서는 recursion 에러가 납니다. 종료조건도 잘 설정해준 것 같은데 어디서 그렇게 호출이 많이 일어나는지 이해가 되지않아서요 ㅠㅠ 강의 잘 듣고 있습니다. 감사합니다!!# 1. 재귀 (근데 백준에서는 recursion 에러 뜸..) n = int(input()) meetings = [] for _ in range(n): meetings.append(list(map(int, input().split()))) meetings.sort(key=lambda x: (x[1], x[0])) # 끝나는 시간을 기준으로 정렬 # x[1]이 같을 경우 x[0]을 기준으로 정렬 def find(i, cnt): for j in range(i+1, n): if meetings[i][1] <= meetings[j][0]: # 회의 끝나는 시간보다 시작하는 시간이 더 크거나 같은 것 찾기 cnt += 1 return find(j, cnt) # 또 찾기 return cnt print(find(0, 1))