Algorithm14 [Algorithm] Brute Force-1 import java.util.HashSet; import java.util.Iterator; public class CreatePrimeNumber { // 소수 만들기 static HashSet hs = new HashSet(); public static boolean isPrimeNumber(int num) { int limit = 0; if (num == 0 || num == 1) { // 0과 1은 소수가 아니다. return false; } limit = (int) Math.sqrt(num); for (int i = 2; i 2022. 11. 26. [Algorithm] Brute Force 이해하기 Brute Force(완전 탐색) 단순히 힘만으로 풀겠다는 알고리즘을 의미한다. 즉, 모든 것을 다 해보겠다는 의미이며, 숫자 4자리 비밀번호를 풀어야 하는 경우 0000부터 9999까지 모두 대입하는 것을 예로 들 수 있다. Brute Force 풀이 방법 1. for / while loop 활용(간단한 문제의 경우) 2. 재귀함수 활용(복잡한 문제의 경우) 2022. 11. 26. [Algorithm] BFS-2 import java.awt.Point; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class BfsIceCream { // 결과적으로 이 코드는 아이스크림 재료를 부을 수 있는 칸 0이 나오면 카운트를 증가하고, // 그곳의 상하좌우, 그 상하좌우의 또 상하좌우들을 전부 1로 만들어줘서 0으로부터 아이스크림이 생성될 수 있는 모든 곳을 1로 바꿔주는 코드이다. // 즉 0이 있다면 1로 만들고 카운트 증가 & 거기서부터 아이스크림이 만들어질 수 있는 모든 공간 1로 변경 // 더이상 1로 바꿀 것이 없다면 다음 칸에서 다시 0인지 체크 static int n = 0; static int m =.. 2022. 11. 26. [Algorithm] DFS-2 import java.util.Scanner; public class DfsIceCream { // 결과적으로 이 코드는 아이스크림 재료를 부을 수 있는 칸 0이 나오면 카운트를 증가하고, // 그곳의 상하좌우, 그 상하좌우의 또 상하좌우들을 전부 1로 만들어줘서 0으로부터 아이스크림이 생성될 수 있는 모든 곳을 1로 바꿔주는 코드이다. // 즉 0이 있다면 1로 만들고 카운트 증가 & 거기서부터 아이스크림이 만들어질 수 있는 모든 공간 1로 변경 // 더이상 1로 바꿀 것이 없다면 다음 칸에서 다시 0인지 체크 static int n = 0; static int m = 0; static String str = ""; static int[][] arr = new int[1000][1000]; public.. 2022. 11. 26. [Algorithm] BFS-1 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class BreadthFirstSearch { // BFS // [BFS 알고리즘] 큐 사용 // peek() : Queue에 맨 앞에 있는 데이터를 가져온다 (Queue에서 꺼내진 않음) // poll() : Queue에 맨 앞에 있는 데이터 꺼낸다 // offer() : Stack에 데이터를 삽입 // (6)--(2)--(1)--(3)--(5) // | / | \ // (8) (4)--(7) public static boolean[] visited = new boolean[9]; public static ArrayList graph = new .. 2022. 11. 26. [Algorithm] DFS-1 import java.util.ArrayList; public class DepthFirstSearch { // DFS // [DFS 알고리즘] 스택 사용 // peek() : Stack 최상단에 있는 top data 반환한다(Stack에서 꺼내진 않음) // pop() : Stack에 있는 데이터 꺼낸다 // push() : Stack에 데이터를 삽입한다 // isEmpty() : Stack 비어있는지 확인한다 // empty() : Stack을 초기화한다 // size() : Stack Size를 반환한다 // (6)--(2)--(1)--(3)--(5) // | / | \ // (8) (4)--(7) public static boolean[] visited = new boolean[9]; public.. 2022. 11. 26. 이전 1 2 3 다음