코딩테스트

    [JAVA] BFS 넓이 우선 탐색 Stack 으로 구현

    import java.util.Stack; class QueueStack { Stack oldStack; Stack newStack; public QueueStack() { oldStack = new Stack(); newStack = new Stack(); } public void enqueue(int a) { oldStack.push(a); } public int dequeue() { int result = -1; if(newStack.isEmpty()) { while(!oldStack.isEmpty()) { newStack.push(oldStack.pop()); } result = newStack.pop(); } // 남아있으면 돌려주기 if(!newStack.isEmpty()) { while(!n..

    [JAVA] DFS 깊이 우선 탐색 Queue로 구현

    package Algorithm; import java.util.LinkedList; import java.util.Queue; class StackQueue{ Queue mainQueue; Queue tempQueue; public StackQueue() { mainQueue = new LinkedList(); tempQueue = new LinkedList(); } public void push(Index a) { mainQueue.offer(a); } public Index pop() { Index result=null; if(mainQueue.isEmpty()) { return null; } while(mainQueue.size() != 1) { tempQueue.offer(mainQueue.po..

    [Python] 코딩도장 23.7 지뢰찾기

    [Python] 코딩도장 23.7 지뢰찾기

    bomb = [] row, column = map(int, (input().split())) for i in range(row): temp = input() bomb.append(list(temp)) # 입력된 값을 차례로 리스트에 저장 for i in range(row): for j in range(column): bombcnt = 0 if bomb[i][j] == "*": # 현재 값이 지뢰면 지뢰를 출력하고 다음 반복 print("*",end="") continue if j-1 >= 0: if(bomb[i][j-1] == '*'): # 현재 좌표 (x, y-1)의 지뢰탐색 bombcnt += 1 if i+1 = 0: # 현재 좌표 (x-1, y)의 지뢰탐색 if(bomb[i-1][j] == '*')..

    [python] 백준 알고리즘 2525 오븐 시계

    hour, min = map(int, input().split(' ')) min += int(input()) if 1

    [JAVA] 팩토리얼 구하기 (재귀, 메모화)

    import java.util.HashMap; import java.util.Scanner; public class Factorial { static int factorial(int n) { if(n > 0) return n * factorial(n - 1); else return 1; } public static void main(String[] args) { HashMap map = new HashMap(); Scanner sc = new Scanner(System.in); System.out.print("정수를 입력하세요 : "); int x = sc.nextInt(); System.out.println(x + "의 팩토리얼은 "+ factorialMemoization(x, map)+"입니다"); ..

    [JAVA] 피보나치 수열 구하기 (재귀, 메모화)

    import java.util.Scanner; public class Pivonacci { static long[] memo; static long f(int n){ if (n

    [JAVA] 재귀함수 메모화

    import java.util.Scanner; public class Memoization { static String[] memo; static void recur(int n){ if (memo[n+1] != null) System.out.print(memo[n+1]); else{ if(n > 0){ recur(n - 1); System.out.println(n); recur(n - 2); memo[n + 1] = memo[n] + n + "\n" + memo[n - 1]; }else{ memo[n + 1] = ""; } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("정수..

    [JAVA] 최대공약수 찾기

    public class Euclid { static int gcd(int x, int y) { if(y == 0) return x; // 나누는 값이 0이면 그냥 x를 반환해라 else return gcd(y, x % y); // x 나누기 y을 하고 몫을 x 나머지를 y - > 다시 재귀 // x 나누기 y 의 나머지가 0이다 - > 최대공약수 } public static void main(String[] args) { System.out.println(gcd(32, 8)); } }