[알고리즘] 너비 우선 탐색(BFS)
CS/알고리즘2023. 8. 3. 23:40[알고리즘] 너비 우선 탐색(BFS)

1. BFS(너비 우선 탐색) 그래프 탐색 - 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것. - 알고리즘 문제를 풀다보면 2차원 배열이 주어지고 탐색을 하며 특정 값을 구하라는 문제가 많은데 DFS와 달리 시간복잡도가 까다롭게 설정되어있고 최단경로를 찾는 문제일 때 주로 사용. -동작과정 큐 선언(2차원 배열이라면 Point 클래스를 활용) 및 시작 포인트 큐에 추가&&방문체크 while(!Queue.isEmpty()) 큐가 없어질 때까지 반복 Queue에서 poll하여 탐색 시작 방향벡터를 이용해서 for문 4방탐색 다음 행선지 NULL체크 탈출 포인트 선언 (예를 들어 목적지 좌표에 도착했다면) 장애물 및 탐색하면 안되는 곳이라면 continue로 탈출 탐색할 수 있는 곳..

Java#1 - 자바공부를 시작하며..
Language/Java2023. 4. 29. 00:11Java#1 - 자바공부를 시작하며..

프로그래밍 언어 중 하나인 자바에 대해 공부하기 위해 자바의 정석이라는 참고서를 구매하였습니다! 초반 부분은 여타 기본참고서와 비슷하게 변수부터 시작해서 배열까지 기본적인 개념들로 간단하게 자바에서 쓰이는 문법에 대해서만 포인트를 주며 가볍게 읽어봤습니다. 기존에 다른 프로그래밍언어를 접해보았다면 앞부분은 빠르게 넘기시는것도 괜찮을 것 같습니다. - JAVA? - 자바는 썬 마이크로시스템즈(Sun Microsystems, Incc. 이하 썬)에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어입니다. 자바의 중요한 특징은 운영체제에 독립적(자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행가능)이라는 것입니다. 또한 풍부한 클래스 라이브러리(Java API)를 통한 강력한 기능..

C# 소켓 프로그래밍-1(서버-클라이언트 통신)
Language/C#2022. 11. 18. 17:08C# 소켓 프로그래밍-1(서버-클라이언트 통신)

현재 진행하고 있는 C#기반 메신저 프로젝트에서 소켓 프로그래밍을 사용할 기회가 생겨 정리하게 되었습니다. 우선 이 프로젝트의 목적은 비동기 소켓통신을 통하여 채팅중계서버를 구현하고, 같은 로컬에 있는 각각의 클라이언트에서 채팅을 주고받을 수 있도록 하는 것에 있습니다. 일단 한눈에 예제를 확인할 수 있게 콘솔앱으로 작성하였고, 아래는 서버 측 소스코드입니다. static void Main(string[] args) { //서버측의 소켓을 생성, 클라이언트와 통신할 연결방식 및 프로토콜 타입을 선언 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //모든 네트워크의 클라이언트의 연결을 받..

[MySQL] View
DataBase/Mysql2022. 10. 26. 20:00[MySQL] View

View : DataBase 내에서 '가상의 테이블'을 의미하며, 생성된 뷰는 기존의 테이블처럼 행과열의 데이터값을 가지는 테이블처럼 보이지만, 실제 테이블처럼 데이터들을 저장하고 있지는 않다. 특징 잘 알려진 장점으로는 1. 테이블 전체가 아닌 필요한 필드만을 보여주는 기능으로써 사용자에게 편리함을 제공한다. 2. 특정 데이터 그리드를 만들기 위해 복잡한 쿼리들을 view를 통해 단순화 기능을 제공한다. 3. 쿼리를 재사용 할 수 있다. 반대로 단점으로는 1. 한번 만들어진 view는 변경이 불가능하다. 2. 자신만의 인덱스를 가질 수 없으며, 3. 해당 view에 관한 작업에 대한 제한사항을 많이 가진다. View의 활용 view 생성에 앞서 이해를 돕기위해 간단하게 사용자의 이름과 나이 정보를 가지..

image