소개
게시글
질문&답변
2023.11.26
시간복잡도 질문
네 제가 보기에는 모든 데이터를 완전탐색으로 순회했기 때문에 사실상 O(n)입니다. 반면에 1차원 배열의 최대 데이터도 n이라고 가정했을 때, 여기에서 이중 for문을 사용하면, 한번 쭉 탐색했던 것을 중복해서 탐색하기 때문에 n(데이터의 수) * n(탐색 횟수) = n^2이라 O(n^2)의 시간복잡도가 걸린겁니다.
- 0
- 2
- 366
질문&답변
2023.11.01
elif left and right return left or right
현재 left와 right에 값이 있으므로 if문에서는 결국 True and True이기 때문에 if True: 와 같은 맥락이 됩니다
- 1
- 3
- 355
질문&답변
2023.09.23
two_sum 딕셔너리 문제 코드관련 질문이 있습니다.
아 찾았습니다. 저도 모르게 nums = [3,3], target = 6의 테스트케이스를 기준으로 해서 prev를 리스트처럼 순서에 의존하다보니 틀리는거였군요 따라서 모범답안과 같이 해당하는 키의 value를 추가하기 위해 ans.append(my_dict[target-v])와 ans.append(i)로 하는게 맞는거 같습니다추가로, chatgpt로 질문을 해봤는데 dict는 파이썬의 예약어로 되어있어서 덮어씌울 위험이 있기 때문에 my_dict와 같이 변수명을 설정해주는 것이 좋다고 합니다 :)
- 1
- 1
- 310
질문&답변
2023.08.17
super사용해봤는데 이해가 잘 안되네요
메인 함수 부분에서 ((Lion)animals[1]).cry(); 부분을 ((Lion)animals[1]).lionCry(); 로 바꿔서 다시 실행해봅시다.참고로, Lion클래스의 메소드를 lionCry()가 아닌 cry()로 정의하면 ((Lion)animals[1]).cry(); 이 부분을 그냥 animals[1].cry(); 로 실행시켜도 다형성에 의해 Animal클래스의 cry()부분이 오버라이딩되어 Lion클래스의 cry()부분이 호출되기 때문에 글쓴이님께서 원하시는 부분이 아래와 같이 출력됩니다.(사진)
- 1
- 2
- 430
질문&답변
2023.08.15
b1.appendModelName 까망이(최신형)
append가 인텔리제이에서 제공하는 메소드같은 것이 아니라, 질문자님께서 정의하신appendModelName 메소드의 동작 코드가 그래서 그렇습니다.자세히 설명드리자면,메인함수에서 appendModelName의 인자에 어떤 것을 넣느냐에 따라 b1의 이름이 달라집니다. 즉, b1.modelName = "까망이"; 로 현재 Blackbox 클래스의 String modelName 필드의 값이 "까망이"로 초기화됬는데, 인자에 "(최신형)"을 넣으면 this.modelName = "까망이"에 인자값인 "(최신형)"을 더해서 까망이(최신형)의 값을 다시 필드에 초기화시켜준 것입니다.(필드의 값이 어떻게 초기화되는지는 디버깅을 통해 알 수 있습니다)추가로, this는 현재 메인함수에서 생성된 인스턴스(실제 메모리에 잡힌 객체)를 일컫습니다. 여기서는 b1이라고 변수명을 지정했으니 b1이 this가 되는것입니다. 다시 질문자님의 appendModelName의 정의 부분을 풀어서 보면this.modelName = this.modelName + modelName; 이 되고, 이를 인스턴스가 생성된 메인함수로 적용시켜보면b1.modelName = "까망이" + "(최신형)"; 이 되어서 최종적으로 까망이(최신형)이 출력되어 나오는 것입니다.
- 0
- 1
- 257