자료구조와 알고리듬 With Java/[Study] BAEKJOON 프로그래머스 CodeUp LeetCode 40

Code up 그림 개수 세기

Ex) 2차원 배열 import java.util.*; public class DfsCountPicture { static int DIRECTION = 4; static int MAX_COUNT = 101; static int [][] g_nAdjMatrix = new int[MAX_COUNT][MAX_COUNT]; static int [][] g_nVisitMatrix = new int[MAX_COUNT][MAX_COUNT]; static int g_uVCount = 10, g_uECount; static int [][]g_nDirMatrix = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; public static void main(String[] args) { int uPictur..

Codeup 4503 BaekJoon 2606 바이러스 DFS

Ex) 1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 첫째 줄에 출력한다. - 신종 바이러스가 네트워크를 통해 전파된다. 한 컴퓨터가 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결된 모든 컴퓨터는 바이러스에 걸리게 된다. - 첫째 줄에는 컴퓨터의 수가 주어진다. - 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 순서쌍의 수, 셋째 줄에는 순서쌍이 나열되어있다. import java.util.*; public class Virus { static int MAX_COUNT = 101; static int[][] AdjMat = new int[MAX_COUNT][MAX_COUNT]; static int[] Visited = new int[M..

Code up 3102 STL stack

Ex) 첫째줄에 N이 입력된다. (1N개가 입력된다. 출처: https://codeup.kr/problem.php?id=3102 package D220316; import java.util.Scanner; interface IStackble100{ boolean empty(); void push(int nData); int peek(); void pop(); void print(); } public class STL implements IStackble100{ private int[] mnArray; private int mnCapacity; private int mnTop; public STL (int nCapacity) { mnArray = new int[nCapacity]; mnCapacity = ..

Code up 1929 재귀함수 우박수 (3n+1) (reverse)

Ex) 우박수 문제 역순으로 출력하기 import java.util.Scanner; public class ReverseCollatz { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); Reverse(m); System.out.println(m); } public static void Reverse(int n) { if( n % 2 == 1 ) {//홀수일 때 if(n == 1) return; n = 3 * n + 1; Reverse(n); }else {// 짝수일 때 n = n / 2; Reverse(n); } System.out.println(n); } } Note..

Code up 3117 0은 빼!

Ex) 정수k가 입력되고 k줄만큼 숫자들이 입력된다. 마지막에 남은 숫자들의 합을 출력한다. - stack을 이용하여 양수가 입력되면 push(), 0이 입력되면 pop() import java.util.Scanner; interface IStackableZero{ boolean empty(); void pop(); void push(int nData); int peek(); void print(); } public class MinusZero implements IStackableZero{ private int[] mnArray; private int mnTop; private int mnCapacity; public MinusZero(int nCapacity) { mnArray = new int[nC..

Code up 1928 재귀함수 우박수 문제 (basic)

Ex) 입력되는 수 n에 대해 홀수이면 3n + 1, 짝수이면 n / 2 을 출력하는 과정을 반복한다. (n이 1이 될 때까지 ) package D220315; import java.util.Scanner; public class Collatz { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); CollatzMethod(m); } public static void CollatzMethod(int n) { System.out.println(n); if( n % 2 == 1 ) {//홀수일 때 if(n == 1) return; n = 3 * n + 1; CollatzMet..

Code up 1920 재귀함수를 이용한 2진수 변환

import java.util.Scanner; public class BinanyOperation { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); if(m == 0) { System.out.println(0); }else { BinanyFunc(m); } } public static void BinanyFunc(int n){ if(n == 0) return; else { BinanyFunc(n / 2); System.out.printf("%d", n % 2); } } }

Code up 1714 숫자 거꾸로 출력하기

Ex) Stack을 이용해서 숫자 거꾸로 출력하기 package D220310; import java.util.Scanner; import java.math.*; interface IStackable17141{ boolean empty(); int peek(); void pop(); void push(int nData); // int search(int nData); } public class ReversePrint implements IStackable17141{ private int [] mnArray; private int mnCapacity; private int mnTop; public ReversePrint(int nCapacity) { mnArray = new int[nCapacity]; m..

Java로 Stack 구현하기

Ex) interface IStackable0{ boolean empty(); int peek(); void pop(); void push(int nData); // int search(int nData); } public class StackPractice implements IStackable0{ private int [] mnArray; private int mnCapacity; private int mnTop; public StackPractice(int nCapacity) { mnArray = new int[nCapacity]; mnCapacity = nCapacity; mnTop = 0; } public boolean empty() { return (0 == mnTop); } public vo..