강의 듣기 전에 먼저 풀어서 정답은 나왔는데, 제 풀이가 이중for문과 뭐가 달라서 시간복잡도가 줄어든 건지 모르겠습니다(왜 정답이 나왔는지가 궁금합니다). for 문 안에 while문을 넣으면서 반복문(반복문) 형태니까 n^2이어야 할 것 같은데 이중 for문 대비 시간이 줄어든 이유가 무엇일까요? import java.util.*; class Main{ public int solution(int n, int m, int[] numArray) { int answer = 0; int sum = 0; int lt = 0; for(int i=0; i<n; i++) { sum = numArray[i]; lt = i; if(sum > m) { continue; } else { sum -= numArray[i]; while(sum<=m && lt<n) { sum += numArray[lt++]; if(sum==m) { answer++; break; } } } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); int[] numArray = new int[n]; for(int i=0; i<n; i++) { numArray[i] = in.nextInt(); } in.close(); System.out.print(T.solution(n, m, numArray)); } }
안녕하세요! 강의 잘 보고있습니다! 다름이 아니라 팔 구현하는 강의에서 카메라 이동에 팔이 안따라오는 문제를 해결하기 위해 Hand Holder를 카메라 안에 넣는 내용이 나오는데 저는 넣으면 항상 이렇게 팔이 얇아지고 카메라의 원점을 기준으로 바뀝니다..! 혹시 해결 방법이 있을까요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
"왜 list에 append를 하는 것은 '쓰기'로 간주되지 않는 것인가요?" ------------------------------------------------------- 리스트일 때는 error가 발생하지 않고, 일반변수일 때는 error가 발생하는 이유가 도대체 무엇인가요? 정말로 존경을 담아서 말씀드리건대 입문강의에서 지금 이 강의까지 매번 감동의 물결 속에서 감사히 들어왔습니다만, 이번 강의에서 이 의문과 관련된 부분은 도무지 이해가 가지를 않습니다. 너무 답답해서 처음으로 질문 올립니다. 2분 36초에서 "위에거를 참조하지 못하고 있는 거예요"라고 하시는데, 그렇다면 클로저 심화(3-1)에서 나온 closure_ex1() 함수에서는 어떻게 내부함수 averager 안에서 series.append(v)를 할 때 '위에거(series = [])'를 참조할 수 있는 것인가요? 바꿔 말하면, "왜 closure_ex1() 함수에서는, 내부함수 averager에서 nonlocal series 라고 선언하지 않았음에도 불구하고, error 없이 정상적으로 실행되는 것인가요?" 클로져 심화(4-2) 질의응답란에는 "local에서는 nonlocal의 변수를 '읽기'만 가능하고 '쓰기'는 불가능하다"고 설명해주고 계신데요, (nonlocal에 있는) list에 (local에서) append를 하는 것은 '쓰기'가 아닌가요? 이 이슈와 관련하여 질문하는 모든 사람들이 scope의 개념은 선생님에게 설명을 듣고 또 충분히 이해하고 있으나, list에 append를 하는 것이 '쓰기'로 간주되지 않는 이유에 대해서는 설명을 듣지 못하고 있습니다. 그래서 다시금 한번 더 여쭤보자면, "왜 list에 append를 하는 것은 '쓰기'로 간주되지 않는 것인가요?" 이것까지 답해주시다보면 너무 깊이 들어가기 때문에, 배려 차원에서 의도적으로 말씀을 안 해주시는 것인가요? 혹시, 이것은 a = [0] -> id(a) -> a.append(3) -> id(a) b = 3 -> id(b) -> b += 3 -> id(b) a의 id는 변하지 않고, b의 id는 변화하는 것과 관련이 있는 것인가요?
제너레이터도 이터레이터라고 알고있는데 , 제너레이터 생성후 dir 을 이용해서 보니 __next__ 가 존재하지 않는 것 같아서 질문드립니다. (이터레이터는 __next__ 가 존재하는 것으로 알고있습니다. )어느부분에서 이해를 못한건지 잘 모르겠습니다! 혹시 next 라는 메소드 없이 yield 를 사용해서 모두 처리 가능하기 때문에 yield 안에 next 가 들어가있다?. 라고 이해하면 될까요 ? 답변감사합니다
리얼타임 데이터베이스에 저장을 할때 나의 uid를 value안에 넣으셨는데, 그렇게 한 방법과 uid를 board 아래 key값으로 두고 그안의 게시물을 넣는방식. 즉 제가 생각한 방식은 board auth.current.uid 게시물 key값 게시물 value값 이런 방식이랑 강의에서는 board 게시물 key 값 게시물 value값 이 안에 auth.current.uid값 이런 방식으로 했는데 어떤 방식이 더 효율적인 방식일까요? 제가 생각할때는 서버입장에서 value안에 나의 uid값을 넣으면 전체 게시물이 10000개라고 봤을때 나의 게시물을 찾는다고 전제하면 전체 게시물의 value의 나의 uid 를 찾아봐야하는데,내 uid를 board 아래 상위key값으로 놓았을때는 10000개가 있다고해도 key에서 내 uid만 가져오면 내가 쓴 게시물을 더 빠르게 가져올수있지 않나라고 생각을 하게되었습니다.혹시 제가 생각한것이 맞는지 틀린지 개복치님의 의견은 어떠신가요.
코틀린은 처음 해보는데 원인을 모르겠어용.. 도움 부탁드립니다. ------------------------ design 라이브러리 추가했을때 뭔가 버전이 안맞는지 build gradle에 오류가 나있었어요. 지우니까 실행 됩니다. 근데 무슨 의미인지는 잘 모르겠네요.. ㅎ;
안녕하세요 강사님. 강의 잘 듣고 있습니다. 궁금한점이 생겨 질문 드립니다. 회원 조회할때는 MemberService를 이용하여 회원을 조회하셨는데, 주문조회할때는 OrderRepository를 이용하여 조회하신 이유가 무엇인지 궁금합니다. DB에 접근하는것은 Repository에, 접근한 데이터를 이용하여 비즈니스 로직을 짜는것은 Service에 둔다고 알고있는데 왜 member쪽 controller에서는 Service를 이용하셨고, Order쪽 Controller에서는 Repository를 이용하셨는지 모르겠습니다. 2. api/v1/simple-orders에서 order.getMember().getName()에서도 질문이 있는데, order.getMember()까지는 지연로딩으로 인해서 Member의 프록시 객체가 넘어오고, order.getMember().getName()에서는 프록시 객체가 아직 실제 엔티티를 가리키지 않는(아직 데이터가 없는 상태)상황에서 Member의 내부 함수를 호출함으로 인해 프록시가 초기화된다고 이해했습니다. 그럼 여기서 초기화하기 위해서 getName이든, 아니면 꼭 getName이 아니어도 프록시는 초기화 된다고 봐도 되는게 맞는것인지 궁금하고, order.getMember.getName()에서 getName()은 프록시객체를 초기화할 목적이었으므로 api/v1/simple-orders를 포스트맨으로 get요청을 보냇을때, Member의 전체 데이터가 나오는게 맞는건지 궁금합니다. order.getMember().getName()이 프록시를 초기화할 목적이었더라도 get요청에서는 member의 name데이터만 나올줄 알았는데(getName), address데이터까지 모조리 다 나오니 조금 의문이 들었습니다. 감사합니다.
지금 강의와는 조금 동떨어진 질문이지만 Update함수를 매 프래임마다 실행되는 반복문(?)처럼 생각하고 있는데 갑자기 반복문 안에서 변수를 사용한다고 할 때 변수선언의 위치에 대하여 궁금한 점이 생겼습니다. 반복문 안에서만 사용되는 변수를 선언할 때 반복문 안에서 int a = 1; 이러한 방식으로 선언을 하는것과 반복문 밖에서 int a;를 선언하고 나중에 반복문 안에서 a= 1;이라고 선언하는것과 성능상의 차이가 있나요?