전체 글(126)
-
메모리 초과(sys.stdin.readline)
답은 계속 정확하게 나오는데 메모리초과 에러가 발생했다. 이유를 찾지 못해서 구글링을 통해 정답을 입력해보았고, input = sys.stdin.readline 이라는 설정이 추가되어있길래 내 코드에 추가해보았더니 메모리초과 오류가 없어지게 되었다. sys.stdin.readline을 사용하는 이유는 python의 input 파일 읽는 속도가 느리기때문에 시간초과, 메모리초과를 방지하기 위해 input() 대신에 sys.stdin.readline() 을 많이 사용한다고 한다. 추가적으로 무한재귀를 방지하기위해 sys.setrecursionlimit 설정을 통해 재귀한계를 정해둔다고 한다.
2023.01.01 -
DFS & BFS
오늘 유튜브에서 DFS와 BFS를 쉽게 설명하는 영상을 봐서 BFS와 DFS에 대한 포스팅을 하려고 한다 넷플릭스에서 한개의 드라마가 16화까지 나오면 한번에 끝까지 보는것을 DFS 여러개의 드라마를 1회씩 나올때마다 보는것을 BFS 아주 이해가 쉬웠다. 3이 우선 탐색(DFS) 과 너비 우선 탐색(BFS) 비교 출처 https://namu.wiki/w/BFS DFS(깊이우선탐색) BFS(너비우선탐색) 현재 정점에서 갈 수 있는 점들까지 들어가면서 탐색 현재 정점에 연결된 가까운 점들부터 탐색 스택 또는 재귀함수로 구현 큐를 이용해서 구현 💡DFS와 BFS의 시간복잡도 두 방식 모두 조건 내의 모든 노드를 검색한다는 점에서 시간 복잡도는 동일합니다. DFS와 BFS 둘 다 다음 노드가 방문하였는지를 확인..
2022.12.30 -
포인터(Pointer)
메모리는 "주소" 와 "값"으로 이루어져 있다. 쉽게 설명하자면 아파트 102동 802호는 "주소"이고 그곳에 살고있는 파지티브헌이라는 "값"이 살고있는것이다. 포인터는 "주소"를 가리키는 변수이다. 주소값의 이해 데이터의 주소값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다. C언어에서는 이러한 주소값을 1바이트 크기의 메모리 공간으로 나누어 표현합니다. 예를 들어, int형 데이터는 4바이트의 크기를 가지지만, int형 데이터의 주소값은 시작 주소 1바이트만을 가리킵니다. 포인터란? C언어에서 포인터(pointer)란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부릅니다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장합니다. 예..
2022.12.29 -
의존성 주입(Dependency Injection)
외부로부터 메모리에 올라가있는 인스턴스의 레퍼런스를 인터페이스 타입의 파라미터로 의존관계를 설정하는것을 말한다. 스프링에선 IoC라는 용어만 가지고는 개념이 너무 추상적이라 그 핵심을 짚는 용어가 필요했는데, 이때 몇몇 사람들의 제안으로 만든 용어가 바로 DI인 것이다. 의존관계 주입 방법 필드를 이용한 의존관계 주입 (Field Injection) setter() 메서드를 이용한 의존관계 주입 (Setter Injection) 생성자를 이용한 의존관계 주입 (Constructor Injection) 더 자세한 내용은 여기 https://yaboong.github.io/spring/2019/08/29/why-field-injection-is-bad/
2022.12.28 -
추상화
추상화는 필요한 부분, 중요한 부분을 통합하여 하나로 만드는 것을 말합니다.
2022.12.28 -
제어의 역전(Inversion of Control)
프로그램의 제어 흐름을 직접 제어하는 것이 아니라, 외부에서 관리하는 것 객체의 생성과 소멸, 그리고 객체간의 의존관계를 설정하는 행위 - 모두 프레임워크가 대신 해준다 : 주도권이 역전됨 → 제어의 역전 - 프레임워크가 흐름을 주도하면서 개발자가 만든 어플리케이션 코드를 사용한다. • 이렇게 IoC가 일어나는 공간을 IoC 컨테이너라고 부른다.
2022.12.28