Java

    숫자야구 확률 줄이기 (진행중)

    우리가 흔히 아는 숫자야구게임을 자바로 구현해보는 중이다 그런데 조금 변형하여 랜덤으로 숫자를 받아 시도 횟수를 줄여보는 방법을 구현하는 프로그램을 만드는 중이다 시도 횟수를 줄이려면 out이 되는 방법인 3개의 숫자가 모두 정답 숫자와 겹치지 않아야한다 package Day_16; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; import java.util.Scanner; public class Baseball { public static void main(String[] args) { // TODO Auto-generated method stub Scanner..

    Stack : 제네릭 사용

    전 글에서 만들었던 Stack 제네릭 미사용 버전에서 private Stack stack 을 클래스로 만들어서 가져왔다면 이번 제네릭을 이용한 Stack은 import java.util.Stack; 을 선언하여 만들었다 import java.util.Scanner; import java.util.Stack; public class Main { // stack private Stack stack; // 중위 표기법으로 입력받은 계산식 private String infix; // 후위 표기법의 배열 private String []arrfix; // 계산 결과 private String result; private int cnt; public Main() { stack = new Stack(); infix =..

    Stack : 제네릭 미사용

    제네릭을 사용하지 않고 stack 클래스를 만들어 실행시켜 보았다. Main Class import java.util.Scanner; public class Main { // stack private Stack stack; // 중위 표기법으로 입력받은 계산식 private String infix; // 후위 표기법의 배열 private String []arrPostfix; // 계산 결과 private String result; private int cnt; public Main() { stack = new Stack(); infix = new String(); result = new String(); cnt = 0; } public static void main(String[] args) { Scan..

    정렬 알고리즘 : 셸 정렬

    import java.util.Scanner; public class Main { private static int cnt=0;//비교횟수 private static int swapcnt=0; static void swap(int[]arr,int a1,int a2) { int t =arr[a1]; arr[a1]=arr[a2]; arr[a2]=t; } static void shellSort(int []arr) { for(int h=arr.length/2;h>0;h/=2)//8,4,2 for(int i=h;i

    정렬 알고리즘 : 단순 삽입 정렬

    비교 횟수는 8 교환 횟수는 6이 나온다 import java.util.Scanner; public class Main { private static int cnt=0;//비교횟수 private static int swapcnt=0; static void swap(int[]arr,int a1,int a2) { int t =arr[a1]; arr[a1]=arr[a2]; arr[a2]=t; } static void insertionSort(int []arr) { for(int i=1;i0 &&arr[j-1]>tmp;j--) { arr[j]=arr[j-1]; cnt++; } arr[j]=tmp;swapcnt++; } } public static void main(String[] args) { // TODO A..

    정렬 알고리즘 : 단순 선택 정렬

    최솟값을 찾아서 가장 맨앞자리에 고정시킨다 -이 행위 반복 import java.util.Scanner; public class Main { private static int cnt=0;//비교횟수 private static int swapcnt=0; private static int tmp; static void swap(int[]arr,int a1,int a2) { int t =arr[a1]; arr[a1]=arr[a2]; arr[a2]=t; } static void selectionSort(int []arr) { for(int i=0; i

    정렬 알고리즘 : 버블정렬

    6,4,3,7,1,9,8의 숫자를 오름차순으로 정렬하기 import java.util.Scanner; public class Main { private static int tmp; static void bubbleSort(int []arr) { for(int i=0;ii;j--) { if(arr[j]

    급여관리프로그램

    has a , is a 를 이용하여 만든 급여관리프로그램이다 데이터관리 클래스 - Admin Class import java.util.ArrayList; import java.util.Scanner; class Admin extends User{ private String name_; //관리자 아이디 private int password_; //관리자 비밀번호 private String id; ArrayList arr = new ArrayList(); Scanner sc = new Scanner(System.in); public Admin() { } public void search() { //관리자가 user 배열에 접속하여 이름을 찾아서 결과를 출력하는 메소드 System.out.print("찾고자..

    BinarySearch

    이진탐색을 재귀함수를 사용하여 구현해보았다. import java.util.Scanner; public class BinarySearch { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in) ; int[] arr= {0,1,2,3,4,5,6,7,8,9,10}; int num=0; for(int i=0;i=0) { System.out.println("\n검색할 숫자를 입력하세요"); num = sc.nextInt(); System.out.println(binary(arr,0,arr.length-1,num)); } } public static int binar..

    팩토리얼

    !=팩토리얼 n은 입력한 수 1부터 n까지 모든 자연수를 곱한다 import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner sc = new Scanner(System.in) ; int num; while(true) { System.out.println("수를 입력하세요"); num = sc.nextInt(); if(num>0) { System.out.println(fact(num)+"\t"); System.out.println(factWhile(num)); } else break; } } public static int fact(int n) { if(n>0) { return n*fact..