List<Integer> list1 = new ArrayList<>(); List<Integer> list2 = new ArrayList<Integer>(); 객체의 타입에는 들어갈 데이터의 타입을 명시해 주어야 하지만 인스턴스를 생성할 때는 타입추론으로 인해 다이아몬드에 타입을 입력하지 않아도 되는 부분에서 궁금증이 생겼습니다. 타입추론은 인스턴스 생성 시 개발자의 편의를 위해 몇 자 줄여주는 정도인가요? 아니면 다른 부가적인 장점이 있는지 궁금합니다. 컴파일러가 타입을 추론하기 위한 시간이 추가적으로 소요될 것 같은데(고려할 정도는 아니겠지만...) 오히려 타입추론으로 최적화 적인 방면으로 이점도 있을까요?..
안녕하세요. 다익스트라는 에지의 가중치가 양수일때 출발노드에서 전체 각 노드까지의 최단거리, 벨만-포드는 특정 출발노드에서 다른 노드까지의 최단 경로 탐색, 음수 가중치가 있어도 수행 가능 이렇게 되어있는데, 벨만-포드에서 에지 사용 횟수를 강조하는 이유가 다익스트라는 출발 노드가 정해져있고, 벨만-포드는주어진 출발노드가 달라질수 있어서라고 생각하면 될까요..? 처음엔 가중치 양수, 음수만의 차이만 인줄 알았는데, 뭔가 강조하시는걸 보니 저런 이유때문인가하고 질문해봅니다..! 다들 화이팅
n,m=map(int,input().split()) weight=list(map(int, input().split())) left=0 right=(n-1) cnt=0 weight.sort() while left<=right: weight_sum=weight[left]+weight[right] if weight_sum>m: cnt+=1 right-=1 else: cnt+=1 left+=1 right-=1 print(cnt) 안녕하세요 선생님, 이렇게 left, right 포인터를 이용해서 풀어도 예제 문제는 모두 정답이 나오는데 혹시 이렇게 푸는 풀이도 답으로 가능할까요?
ArrayList는 배열을 기반으로 만든 List이며 LinkedList는 객체의 참조로 연결된 List로 이해했습니다. 요즘에는 메모리 용량이 많이 크기 때문에 고려하지 않아도 된다고 생각하는데 궁금증이 있어 질문을 남깁니다. LinkedList는 데이터가 추가 될 때 마다 새로운 Node를 만들어서 현재 가지고 있는 데이터의 크기만큼 메모리를 차지하는 반면 ArrayList는 들어있는 데이터 크기가 일정 크기를 넘는 경우 더 많은 데이터를 저장할 수 있는 새로운 Array를 생성하여 반환하기 때문에 동일한 개수의 데이터를 저장해도 ArrayList가 메모리 상에서 차지하는 크기가 크다고 생각하면 되나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 2강 코틀린에서 null을 다루는 방법 수강중 궁금한 지점이 생겨 문의드립니다. name이라는 필드에 NotNull 어노테이션을 달아주어서 인스턴스 초기화시 null값은 받을 수 없게 하고싶었는데이런 경우에는 null을 대입해도 에디터상에서 에러를 짚어주지 못하더라구요.회사 프로젝트를 전환하는 과정중에는 이런 문제가 꽤나 발생할 것 같은데 좋은 해결책이 있을까요? package com.lannstark.lec02; import org.jetbrains.annotations.NotNull; public class Person { @NotNull private final String name; public Person(String name) { this.name = name; } public String getName() { return name; } } package com.lannstark.lec02 fun main() { val person = Person(null) startsWithA(person.name) }
안녕하세요. 좋은 강의 감사합니다! a와 b의 최대 공약수 시간 복잡도에 대해 질문이 있는데요. 약수를 구하는 시간 복잡도가 O(√n)이고, 최대 공약수를 구하기 위해서는 a, b 각각의 약수를 구하는 연산이 들어가기 때문에 최소 O(√a + √b)가 될 텐데 어떻게 O(√max(a, b))가 나오게 되는지 궁금합니다.
현재 섹션 5의 3번째 영상을 보고 있습니다. category = models.ForeignKey( Category, on_delete=models.CASCADE, db_constraint=False, ) 위 코드에서 카테고리에 왜 db_constraint=False, 를 설정하였는지 이해가 잘 되지 않아 설정 용도에 대해 알고 싶습니다. default=null을 한다면, 카테고리 외래키 없이 product 데이터를 생성할 목적인걸 알겠는데, 없는 상황에서 어떤 이유에 사용하신 것인지 알고 싶습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 컬렉션 프레임워크9에서 문제와풀이2의 문제6번에 대해 여쭤봅니다. memberMap이라는 해시맵에서 첫번째 매개변수로 member.getId 가 들어가고 두번째 매개변수로 member클래스가 들어가는데 첫번째 매개변수가 member클래스의 멤버변수이어야 하는 이유가 있을까요? 문제를 풀던 중에 아직은 잘 모르겠지만 member클래스의 멤버변수 두개를 memberMap이라는 해시맵에 두개를 지정해도 될거같기도 한데(제 극히 초보인 관점에서 본 추측일 뿐입니다.그렇게 풀어볼 능력까진 없어서요.) 굳이 두번째에 클래스를 넣으시고 첫번째에 클래스의 멤버변수 하나를 넣으신 이유가 궁금합니다. 제 짧은 시각으로 보면 중복 같아 보여서요 질문6번의 의도가 파악이 안 돼서 궁금하여 여쭤봅니다.
1 from statsmodels.formula.api import ols from statsmodels.stats.anova import anova_lm model = ols('토마토수 ~ C(종자) * C(비료)', data=df).fit() anova_lm(model) 2 import statsmodels.api as sm from statsmodels.formula.api import ols model = ols('토마토수 ~C(종자)*C(비)', data=df).fit() anava_table=sm.stats.anova_lm(model) print(anava_table) 1 과 2를 보면 from statsmodels.formula.api import ols 는 같고 import statsmodels.api as sm과 from statsmodels.stats.anova import anova_lm이 다른데요.. 구글링해보고 고민해봐도 모르겠어요. 결과값은 같은데..무슨차이일까요?
SPP Layer의 경우 여러 Spatial Bins를 사용하여 이미지의 작은 부분부터 큰 부분까지의 정보를 취합하는 것으로 이해했습니다. 또한 ROI Pooling Layer의 경우 SPP Layer에서 Level이 1인 Bins만 적용하는 것으로 이해했습니다. 여기서 의문이 드는 것이 여러 정보를 종합적으로 취합한 SPP Layer가 ROI Pooling Layer보다 성능이 뛰어날 것으로 (직관적으로) 생각이 드는데, Fast RCNN에서 ROI Pooling을 선택한 이유가 궁금합니다. 실험적인 결과로 ROI Pooling을 선택했겠지만, ROI Pooling이 SPP Layer보다 Object Detection에서 우수한 성능을 보이는 이유가 궁금합니다!
"1-6. [응용] 폴더에 있는 한글 파일을 모두 열기" 관련입니다. 일단 일코님의 설명대로 한 두 번 그대로 성공하고 나면, 강의 내용이 잘 이해가 됩니다. 하지만 초반에는 저 같은 왕초보의 경우 그대로 결과가 나타나지 않거나 실습 조건이 동일하게 마련되지 않으면 헤매게 됩니다. ■ 개선의견 1 이 강의에서는 1.hwp ~ 100.hwp 파일이 들어 있는 "반복작업" 폴더가 있다고 가정하고 실습을 진행하는데요. 물론, 1.hwp 파일을 다운로드 가능하게 되어 있지만.. 1.hwp ~ 100.hwp 파일을 다 만들어 내는 것이 선행되어야 그대로 실습이 가능한데, 그 파일을 만드는 것은 강의 초반이 아니라 후반에 배치되어 있습니다. 제 의견은, 1.hwp ~ 100.hwp 파일을 만들어 내는 부분을 앞에 배치하고, 설명에서는 "이 코드는 아직 안배운 내용이 포함 되므로, 이대로 실습해서 1.hwp ~ 100.hwp 를 만드는 게 부담스러운 학습자는 이 부분을 SKIP하고 진행하세요."라고 한다던가, 아울러, "만약 SKIP하고 진행하실 분들은 1.hwp ~ 100.hwp 파일이 들어 있는 압축파일(zip)을 다운로드 받아서 진행하시면 됩니다."라고 안내하면서, 해당 압축파일의 다운로드도 제공해 주시는 게 어떨까 합니다. ■ 개선의견 2 또 하나는, 작업 디렉토리의 강제 설정을 위한 코드 예시도 추가로 설명에 넣어 주셔도 좋을 거 같습니다. os.chdir(r"C:\Users\user\Desktop\반복작업") 파이참으로 실습 시 작업 디렉토리는 '반복작업' 폴더가 아닌 경우가 대부분으로 왕초보는 요걸로 또 막힐 수 있습니다. ■ 마치는 글 이미 잘 만들어 주신 강의이지만 왕초보의 더 매끄러운 이해를 위한 제안을 드리는 것이니, 꼭 반영하지는 않으셔도 되지만.. 왕초보는 이런 어려움도 있구나.. 정도로 이해해 주시면 감사하겠습니다. 간단한 것도 실행되면 큰 즐거움을 느끼면서 틈틈이 강의 따라하고 있습니다. 감사합니다.