GitHub

https://github.com/Choidongjun0830

분류 전체보기 463

[백준] 1697번 숨바꼭질 BFS

처음에 잘못 푼 코드 import sys from collections import deque N, K = map(int, sys.stdin.readline().split()) def bfs(N, K): queue = deque() queue.append((N, K, 0)) while queue: n, k, count = queue.popleft() if n == k: return count else: queue.append((n+1, k, count+1)) queue.append((n-1, k, count+1)) queue.append((2*n, k, count+1)) print(bfs(N,K)) 이렇게 풀었을 때 예시 입력을 넣으면 정답은 나오는데, 메모리초과가 나왔다. 방문처리의 중요성을 알게 되었..

[Spring DB 1편 듣고 복습, 토이 프로젝트 수정] 1.JDBC 이해

JDBC의 등장 이유 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답받는 방법이 모두 달라서 원래 사용하면 데이터베이스 기술에서 다른 기술로 변경하면 데이터베이스 사용 코드도 함께 변경해야하고, 개발자도 각각의 데이터베이스 기술을 새로 학습하여야 한다. -> JDBC라는 자바 표준이 등장. JDBC는 자바에서 데이터 베이스에 접속할 수 있도록 하는 자바 API이다. java.sql.Connection(연결), java.sql.Statement(SQL을 담은 내용), java.sql.ResultSet(SQL 요청 응답)의 인터페이스를 정의해두었고, 각각의 DB 회사에서 자신의 DB에 맞도록 구현해서 라이브러리로 제공한다. (MySQL JDBC 드라이버, Oracel JDBC ..

Spring 2024.02.20

BFS, DFS 다시 공부

참고 더보기 https://youtu.be/BsYbdUnKZ-Y?si=NH3yYYRu0XnaSZnN https://youtu.be/7C9RgOcvkvo?si=D3bH2OfymjUXocs2 그래프 탐색 알고리즘 (그래프 : 여러 개체들이 연결되어 있는 자료구조) 대표적인 문제 유형 경로 탐색 유형(최단거리, 시간) 네트워크 유형(연결) 연결되어 있는 그룹의 개수 두 개체가 같은 네트워크 안에 있는지 조합 유형(모든 조합 만들기) 스택 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조. 입구와 출구가 동일한 형태로 스택을 시각화할 수 있다. 파이썬에서 스택은 단순히 리스트와 append(), pop()으로 구현 가능하다. stack = [] stack.append(5) stack.pop() ....

알고리즘 2024.02.19

스프링으로 예외처리와 반복 문제 해결

서비스 계층은 특정 기술에 의존하지 않고, 순수하게 유지하는 것이 좋은데 그러려면 예외에 대한 의존도 해결해야 한다. 서비스 계층에서 처리할 수 없는 예외에 대한 의존을 제거하려면 체크 예외를 런타임 예외로 전환해서 서비스 계층에 던져야 한다. 그러면 서비스 계층에서 무시할 수 있기 때문에, 특정 구현 기술에 의존하는 부분을 제거하고 서비스 계층을 순수하게 유지할 수 있다. 인터페이스 인터페이스를 도입해서 구현 기술의 버전이 바뀌면 쉽게 변경할 수 있도록 할 수 있다. 하지만 인터페이스 구현체가 체크 예외를 던지려면, 인터페이스 메서드에 먼저 체크 예외를 던지는 부분이 있어야 한다. 인터페이스가 특정 구현 기술에 종속적인 체크 예외를 사용하게 되면 순수한 인터페이스를 만들 수 없다. 인터페이스를 만드는 ..

Spring 2024.02.19
728x90