질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
a = [ 1 , 2 , 3 ] b = a c = [ 1 , 2 , 3 ] d = [ 1 , 2 , 3 , 4 ] print (a is c) # False print (a is not c) # True 완전 동일한 메모리를 참조하여야 같은 객체로 보는것인지 궁급합니다. 추가 설명 주시면 감사하겠습니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 1:30초 경에 data_atype 자료를 다운 받고 드롭앤드롭을 동영상에 있는 것 처럼 따라해도 우측 하단에 빨간색 원이 뜨면서 자료가 안불러와집니다(재부팅해도 동일 현상 발생)
항상 성실한 답변에 감사드립니다. 오늘도 난관에 봉착했습니다 ㅠㅠ 1. 엑셀도 win32 로 불러들여야 해서, 아래와 같이 하려면 중복(순환로딩)에 대한 문구가 뜨던데요. 좋은 방법이 있을까요? from pyhwpx import Hwp import win32com.client as win32 2. textbox (글상자)를 하나 열고 글상자에 텍스트를 넣고 빠져나오려면 어떻게 해야할까요?
안녕하세요 강사님, 백준 11726번 관련 질문 드립니다. 노션에 나온 정답지는 # input N = int(input()) # solve dp = [0] * (N + 2) dp[1] = 1 dp[2] = 2 for n in range(3, N + 1): dp[n] = (dp[n-1] + dp[n-2]) % 10007 print(dp[N]) 으로 되어있습니다. 그런데 강의에서는 dp = [0] * (N + 2) 부분이 dp = [0] * (N + 1) 로 되어있습니다. 백준에 dp = [0] * (N + 1) 로 제출하면 런타임 에러가 발생하는데, 그 이유를 알 수 있을까요? dp[N]까지 접근하는건데, 0번째 인덱스를 고려한 N+1이아닌, N+2는 왜 필요한지 모르겠습니다. (강의나 노션에 추가 설명이 보이지 않아서 여쭤봅니다) 감사합니다.
함수와 재귀함수 (v2) 59:06에서 arr[0]이 어떻게 리턴이 되는지 궁금합니다. arr[0]이 max 값으로 리턴 되는건가요? return arr[0]값이 위에 int maxval로 리턴이 돼서 밑에 있는 maxVal(arr, size-1) 함수에 값이 대입이 돼서 max에 arr[0]이 대입된건가요?
스킬시스템의 public bool Use(Skill skill) { skill = Find(skill); Debug.Assert(skill != null, $"SkillSystem::IncreaseStack({skill.CodeName}) - Skill이 System에 등록되지 않았습니다."); return skill.Use(); } 여기에서 스킬을 사용한다는것은 알겠는데 등록되어있는 스킬을 사용하는 방식이 어떤건지 잘 모르겠습니다. 모든 참조를 이용해서 찾아도 스킬테스트에서 사용한 것 말고는 없고 이벤트를 이용한것인가 싶어서 다 찾아보아도 안보여서 질문을 드립니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
루키스님 안녕하세요? 기존 SendBuffer.cs는 메모리 누수 이슈 등으로 삭제하고 새로운 기법을 알려준다고 말씀해주셨는데 그게 최종적으로 ClientSession.cs의 Send()함수가 되는게 맞을까요? (아래 코드블록) 맞다면 Send()가 호출 될 때 마다 버퍼를 새로 생성하기 때문에 SendBuffer.cs의 강점이었던 하나의 거대한 메모리를 사용하면서 버퍼 생성 및 Copy가 줄어드는 이점이 없어진 걸로 이해가 됐는데, 기존의 SendBuffer.cs와 새로운 대체된 Send()의 장단점이 각각 궁금합니다. ClientSession.cs public void Send(IMessage packet) { string msgName = packet.Descriptor.Name.Replace("_", string.Empty); MsgId msgId = (MsgId)Enum.Parse(typeof(MsgId), msgName); ushort size = (ushort)packet.CalculateSize(); byte[] sendBuffer = new byte[size + 4]; Array.Copy(BitConverter.GetBytes((ushort)(size + 4)), 0, sendBuffer, 0, sizeof(ushort)); Array.Copy(BitConverter.GetBytes((ushort)msgId), 0, sendBuffer, 2, sizeof(ushort)); Array.Copy(packet.ToByteArray(), 0, sendBuffer, 4, size); Send(new ArraySegment<byte>(sendBuffer)); }
뭔가 빠져서... 이게 맞겠죠..? a = [1, 2, 3] b = a c = [1, 2, 3, 4] print(a is b) # 출력: True print(a is c) # 출력: False print(b is not a) # 출력 : False print(b is not c) # 출력 : True print(a == c) # 출력: False print(a != c) # True print(a != b) # False print(c != b) # True 같다 : is 와 is not 과의 차이 ==, != != 값이 다른지 판단 (내부) == 값이 같은지 is = 객체가 같은지 is not = 객체가 다른지 # 예제 def add(a, b, c): return a + b + c nums = [1, 2, 3] print(add(*nums)) # 출력: 6 kwargs = {'a': 1, 'b': 2, 'c': 3} print(add(**kwargs)) # 출력: 6 print(add(*kwargs)) # 출력: abc 딕셔너리에서는 문자열도 언팩킹해서 값으로 보내는 느낌이 있네요 . 키 값이라서 안될 줄 알았는데. (이게되네..?)
안녕하세요? AraaySegment 관련해서 코드리뷰하다 궁금한게 생겨서 질문 드립니다. ArraySegment<byte>.Offset이 잘 이해가 안가서요. 제가 알아 본게 맞다면? Offset은 항상 0이 아니고 데이터가 시작하는 위치를 가르킴 그렇다면 _buffer는 항상 0부터 데이터를 사용하고 있으므로 항상 Offset은 0임 그렇다면 RecvBuffer.cs의 이 코드는 이렇게 바꿔도 되지 않을까? 원래 코드 public void Clean() { int dataSize = DataSize; if (dataSize == 0) { // 남은 데이터가 없으면 복사하지 않고 커서 위치만 리셋 _readPos = _writePos = 0; } else { // 남은 찌끄레기가 있으면 시작 위치로 복사 Array.Copy(_buffer.Array, _buffer.Offset + _readPos, _buffer.Array, _buffer.Offset, dataSize); _readPos = 0; _writePos = dataSize; } } 수정 후 Array.Copy(_buffer.Array, readPos, buffer.Array, 0, dataSize); _readPos = 0; _writePos = dataSize; 마찬가지로 Session.cs 에서 _buffer정보를 리턴해 주는 이 코드는 이렇게도 되지 않을까? 수정 전 void RegisterRecv() { if (_disconnected == 1) return; _recvBuffer.Clean(); ArraySegment<byte> segment = _recvBuffer.WriteSegment; _recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count); 수정 후 _recvBuffer.Clean(); ArraySegment<byte> segment = _recvBuffer.WriteSegment; _recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count); 제가 계속 곱씹어봤는데 Offset에 대한 이해가 안되서 ㅜㅜ 답변해주시면 감사하겠습니다.