분류 전체보기 (401) 썸네일형 리스트형 백준(BOJ) 2667: 미로 탐색 https://www.acmicpc.net/problem/2178 BFS로 품. 객체지향 설계 2주차 과제와 연관된 문제라 풀어봄. Collection class에 요소로 배열을 넣고 그 각각의 배열에 y,x좌표를 넣는 방식이 익숙치 않았음. 왜 DFS가 아닌 BFS냐는 의문에 아직 정확히 답은 못하지만, DFS로도 풀수 있긴함. 하지만 한번 방문된 적이 있다면 다음에 다시 방문했을때 그것은 무조건 최단거리가 아님을 이용하는 것에서 DFS보다는 BFS가 적당할 것이라는 생각. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.Buffer; import java... 그래프 탐색 BFS, DFS BFS public static void BFS(Listgraph, int start){ int size=graph.size(); Queueque=new LinkedList(); que.add(start); boolean[] visited=new boolean[size]; visited[start]=true; while(!que.isEmpty()){ int vertex=que.poll(); System.out.println(vertex+" "); for(var nextV: graph.get(vertex)){ if(!visited[nextV]){ que.add(nextV); visited[nextV]=true; } } } } 아래는 List 를 List[]로 바꾸어 표현한 것 // public static.. 자바 스트림 라이브러리에 대하여 출처: https://futurecreator.github.io/2018/08/26/java-8-streams/ 스트림의 쓰임 예시: https://coding-factory.tistory.com/574 스트림 라이브러리란? 복합타입 자료구조의 집단연산을 내부반복을 통해 계산해 주는 라이브러리로써 자바 8부터 함수형 프로그래밍이 지원되면서부터 함께 제공된 라이브러리다. 즉, 람다표현식과 함께 등장한 라이브러리다. (스트림: 함수형 프로그래밍, 선언적 프로그래밍을 할 수 있게 해주는 라이브러리. 복합타입의 자료구조의 집단연산을 내부반복을 통해 계산해줌. ⇒ 이에 대한 교수님 설명: 스트림은 주로 집단연산할 때 사용한다는 것입니다. 주로… 중간연산, 최종 연산을 수행하는데, 최종 연산의 기본이 reduce입.. 왜 Scanner가 아닌 BufferedReader인가! 출처: https://dlee0129.tistory.com/238#recentComments 정리! 1. 왜 Scanner가 아닌 BufferedReader를 사용해야 하는가? 입력속도가 더 빠르다! Scanner가 키보드 입력즉시 바로바로 프로그램에 전달되지만 BufferedReader는 버퍼가 다 채워지거나 개행 문자가 나타날 때까지 받아들인 후 프로그램에 전달됨. 2. 자바 응용 프로그램은 입력 장치로부터 직접 데이터를 읽지 않고 입력 스트림을 통해 데이터를 읽는다. 3. 그 외 BufferedReader사용시 BufferedReader br= new BufferedReader(new InputStreamReader(System.in));과 같이 형식이 복잡한지를 알수 있는내용. 자바를 처음 배울 .. var에 대하여 출처: https://kjhoon0330.tistory.com/entry/Java-var-%ED%82%A4%EC%9B%8C%EB%93%9C%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC#3.%202.%20var%20%ED%82%A4%EC%9B%8C%EB%93%9C%EC%97%90%20%EA%B4%80%ED%95%9C%20%EC%9D%B4%EC%95%BC%EA%B8%B0%F0%9F%92%AC 정리!! var 이란? Type Inference(타입 추론)로 제네릭, 람다식에서도 볼수 있다. 우변, 우측을 보고 타입을 유추하며 컴파일시 타입추론을 한다. 즉, 바이트 코드에서는 추론된 타입이 들어갈 테니 런타임 오버헤드가 발생하지 않는다. 0. 들어가며🚶 Java 10부터 도입된 var에 대.. School algo09 탐욕적(Greedy) 알고리즘2. # 크루스칼 #union-find 서로소인 집합을 찾는 집합 자료구조 알고리즘 A. 가중치 무방향 그래프에서 최소신장트리 구하기 Sol1) 우선순위 큐를 이용한 Prim 알고리즘(인접리스트 이용) //원본!!!!!! 좀 더 실용적인 코드는 아래에! //인접 행렬=방향, 밀집, (무방향도 인접행렬로 표현하는 것이 빈번) //인접 리스트=무방향, 희소 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.PriorityQueue; .. 2. Strategy Pattern 전략 패턴은 언제 쓰이나? 1. 실행시간에 클라이언트 클래스가 가지는 하나 혹은 다수의 종류의 전략을 실행시간에 변경하고자 할때. 2.한 클래스가 여러 행위를 조건문을 통해 정의할때 (수업시간에 전략패턴이 쓰이는 경우의 대표적인 경우가 한클래스가 여러행위를 조건문을 통해 정의해야 할 경우에 전략패턴이 쓰인다고 배웠다. 아래 유튜브 영상에서 제시하는 경우가 이 경우에 해당한다. SearchButton이라는 클래스 내에 여러행위가 조건문을 통해 정의되어 있음) 전략 패턴의 형식은 어떻게 되나? 각각의 전략을 클라이언트 클래스와 분리하여 전략 인터페이스와 전략 클래스로 구현하고 클라이언트 클래스(Context class)들은 느슨한 결합을 위해 그 전략 인터페이스를 맴버로 갖는다(has-a) 이러한 검색화면을.. 1. Singleton pattern 싱글톤 패턴이란? 한 클래스의 객체를 한번만 생성하도록 제한하고 이 객체에 대한 광역적 접근을 제공하는 패턴 출처: https://www.youtube.com/watch?v=lJES5TQTTWE&t=1s 어떤 프로그램내에서 특정 클래스의 객체가 단 하나만 만들어져야 하는 경우에 쓰임! 예를들어 Modile phone에서 다크모드로 설정시 어떠한 앱을 사용하건 간에 모두 다크모드가 적용되어야 함. 이것은 세팅을 관리하는 객체는 반드시 같은 것을 사용해야 한다는 말이다. 아래는 Settings라는 클래스로 darkMode여부와 fontSize를 상태로 지닌다. 그리고 안드로이드 프로그래밍을 해보면 페이지마다 클래스가 만들어지는데, 예를들면 아래와 같다. 이 클래스들을 대상으로 메인함수를 아래와 같이 구성해보.. 이전 1 ··· 43 44 45 46 47 48 49 ··· 51 다음