if let은 앞 강의에서 if let age = myAge1{ } myAge1 이 nil 이면 true, 아니면 false라고 배웠는데요, if case let 에서는 그렇지 않고 ==처럼 타입을 비교해서 true와 false를 정하는 것으로 이해했습니다. if let에 이어서 if case let 도 nil값이냐 아니냐에 따라 true,false가 결정될 것 같았는데, if case let은 if let과 연관이 딱히 없고 각각 알려주신대로만 이해하면 될까요?
투포인터를 이용해 subString() 의 범위를 결정하도록 하였습니다. 자바에서 큰 수를 다루는 클래스인 BigInteger 를 사용해 별도의 0 처리 없이 문제를 풀 수 있었습니다. package lecture2; import java.math.BigInteger; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Prob2870 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); List<BigInteger> result = new ArrayList<>(); for (int i = 0; i < n; i++) { result.addAll(findNums(sc.next())); } Collections.sort(result); result.forEach(System.out::println); } private static List<BigInteger> findNums(String str){ int s =0,e=0; List<BigInteger> ret = new ArrayList<>(); char[] chars = str.toCharArray(); while (s<str.length() && e<str.length()){ if(isNum(chars[s])){ while (e<str.length() && isNum(chars[e])){ e++; } String result = str.substring(s,e); ret.add(new BigInteger(result)); s = e; }else { s++;e++; } } return ret; } private static boolean isNum(char c){ return c>='0' &&c<='9'; } }
Java에서는, 문자열 객체가 생성될 때마다 새로운 주소를 할당하는 방식 을 사용합니다. 그러나 Python의 경우 문자열 객체 생성 시 매번 새로운 객체를 만드는 대신 기존에 선언되어 있던 immutable 객체를 사용합니다. 이는 CPython의 최적화 기법 인 string interning 에 의한 동작입니다. 따라서 둘 이상의 변수 가 메모리의 동일한 문자열 객체 를 가리킬 수 있고, 메모리를 절약하게 됩니다. a = 'PlanB' b = 'PlanB' print(id(a), id(b)) # 4346040648 4346040648 print(id(a) == id(b)) # True print(a is b) # True https://planbs.tistory.com/entry/Python-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EB%A9%94%EB%AA%A8%EB%A6%AC-%ED%95%A0%EB%8B%B9-%EB%B0%A9%EC%8B%9D 간단하게 말하면, '동일한' 문자열을 가리킬 경우에는 미리 선언했던 변수(c)를 새로 선언하는 변수(d)에 덮어씌우는 것입니다. 따라서 c is d 가 True가 되는 것입니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요. initState(), didUpdateWidget(), deactivate(), dispose() 등의 함수에서 super.initState(), super.didUpdateWidget(), super.deactivate(), super.dispose() 함수를 호출하는데 이 때 다른 코드와의 순서는 상관이 없는건가요? 아니면 어떤 차이가 있는걸까요? 예를 들어 print('initState 실행!'); super.initState(); 와 super.initState(); print('initState 실행!'); 의 차이가 궁금합니다.
해당 강의 8:50 정도 부분에서 double convertedScoreDouble = score; 이 부분이 191 -> 191.0 으로 변환되었다고 해주셨는데 그 다음 줄에 sout(score) 를 입력하니 191 그대로 나옵니다. 제가 실수 한 부분이 무엇인가요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.def DFS(L, s): global cnt if L == m: for j in range(L): print(res[j], end =' ') cnt += 1 print() else: for i in range(s, n+1): res[L] = i # 교수님꼐서는 i+1로 하셨고 저는 s+i로 했습니다. DFS(L + 1, s + i) if __name__ == "__main__": n, m = map(int, input().split()) res = [0] * (n+1) cnt = 0 # DFS(L, s)라 하면 s는 가지니까 즉 처음에는 1, 2, 3, 4돌고 그다음은 2, 3, 4돌고 이런식으로 해야 # 순서를 고려안할 수 있다. DFS(0, 1) print(cnt) 안녕하세요 교수님! 코드를 작성하다가 질문이 있어서 질문 드립니다. 제가 교수님의 강의를 먼저 듣고 코드 구현 보기전에 저렇게 코드를 작성했습니다. 그러나 다른 코드는 다 같은데 한가지 다른 부분이있었습니다. else 문에서 교수님께서는 DFS(L+1, i+1)으로 하셨고 저는 어짜피 s는 1부터 시작하고 i도 똑같이 1부터 n+1까지 증가하기에 s+i라고 생각하여 코드를 작성했습니다. 이렇게 해도 혹시 문제는 없는지 i+1로 해야만 한다면 왜 그런지 이유를 알고 싶습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 :) 계묘년 새해 복 많이 받으시길 바랍니다. 강의 도중 allEq와 같은 메서드를 where()메서드에 넣게 되면 null 체크를 주의해야 한다고 하셔서 여러가지 Test를 돌려보았는데요 그 결과, return usernameEq(usernameCond).and(ageEq(ageCond));와 같이 체이닝을 하게되면 제일 첫 번째 메서드(여기서는 usernameEq(usernameCond))가 null일 경우 NullPointerException이 발생하는 것을 알았습니다. 이걸 어떤 방식으로 처리해야할까요? 맨앞에 있는 것이 null인지 체크하고 그것을 제외한 조건들만 return 하는 방법도 생각했으나, 이 역시도 조건이 여러개라면 다시 첫번째 조건이 null인지 체크해야한다는 맹점이 있어서, 코드가 길어질것 같다는 생각이 듭니다. 통상적으로 이런 경우 어떻게 대처하는 지 알려주시면 감사하겠습니다! 다시 한 번 새해복 많이 받으세요!
안녕하세요. 포트폴리오에 회원가입과 로그인 기능 구현 중인데, 로그인 할 때 메일주소에 @가 들어가면 회원정보를 찾을 수 없다는 에러 메세지가 나타납니다. 코드 차이 없이 @ 제외하고 입력하면 문제 없이 동작합니다. 어떤 부분이 문제인가요? - 코드에 오타가 있었습니다. 해결 했습니다 : )
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 잘 따라하고 있다가 끝까지 다 보고 확인해봐도 광선이 플레이 버튼 누른 다음 부터는 나오지 않습니다 ... 스크립트랑 on off 설정도 다 맞게 했는데 문제점을 못찾겠습니다
window 환경에서 android studio로 flutter doctor -v를 치면 X Unable to find bundled Java version. 위와 같은 에러?가 발생합니다. 구글링하면 보통 mac 환경에서의 해결책은 많은데 window환경에서는 해결책이 없어 질문드립니다. 몇 개 없는 것들 중에 오래된 android studio를 삭제하라고 해서 삭제도 해보았습니다.ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] - stateful 하다는 의미는 공유필드(?) 또는 인스턴스 변수가 있는 것을 말하고, stateless 하다는 의미는 공유필드(?) 또는 인스턴스 변수가 없는 것을 말하는 건가요?
안녕하세요 강의 잘 보고 있습니다 Yolov2에서 Darknet-19 백본을 사용하는데, 여기서 NIN 기술이 적용되었다고 나오는데 논문이나 코드에서 이 부분에 대한 언급을 알 수 있을까요? 또한 해당 기술이, 보통 채널은 변경하는데 아웃풋 사이즈를 안바꾸는 1x1 컨벌루션과 다른건가요? 감사합니다
안드로이드 에뮬레이터를 실행하려고하는데 에러가 나서 첨엔 adb 명령어도 안되서 brew install android-platform-tools 명령어로 설치한담에 위 제목같이 명령어 실행후 다시 해봤는데도 안되네요. 어떻게 해야 에뮬레이터가 실행 될까요? ㅠㅠ -> 아예 지우고 2강 전부터 다시 만들어서 실행하니 되는거같네요 ㅠㅠ
강의를 보고, TCP 통신 과정에서 수신자가 Recv를 호출하면 소켓 수신 버퍼에 있던 데이터를 프로세스 상의 버퍼에 옮겨온다고 이해했는데요, 그러면 소켓 수신 버퍼는 Recv와 같은 api를 따로 호출하지 않아도 알아서 커널이 비동기로 데이터를 받아두는 건가요? TCP 세그먼트는 어디서 조립되는 건가요? 만약 TCP 세그먼트가 소켓 버퍼(혹은 그 이전)에서 조립되는게 아니라면, Recv를 호출할 시 세그먼트를 일부만 가져오는 경우가 생길 수도 있다고 생각되는데요, 이 경우에는 추후 어떻게 조립을 할 수 있고, 또 완성되었다는 근거는 어떻게 얻을 수 있는지 궁금합니다. 항상 감사드립니다~~!!^^