[Java 기초] 코드 복기

·2023년 9월 14일
0

JAVA

목록 보기
6/15

로또 1

// 중복 없이 6개의 로또 번호를 뽑고, 유저에게 6개의 번호를 받아
// 몇 개가 맞았는지 확인하는 프로그램

import java.util.Scanner;

public class Exam_14 {

	public static void main(String[] args) {
		int[] roto = new int[8];
		int[] user = new int[8];
		int col = 0;
		
		for (int i = 0; i < 6; ++i) {
			roto[i] = (int)(Math.random()*45+1);
			for (int j = 0; j < i; ++j)
				if (roto[i] == roto[j]) {
					i--;
					break; 
				}
		}
		
		Scanner in = new Scanner(System.in);
		
		for (int i = 0; i < 6; ++i) {
			System.out.println(i+1 + "번째 숫자는? : ");
			user[i] = in.nextInt();
		}
		
		for (int i = 0; i < 6; ++i) {
			for (int j = 0; j < 6; ++j)
				if (roto[i] == user[j]) {
					col++;
					break;
				}
		}
		
		
		for (int i = 0; i < 6; ++i) {
			System.out.print(roto[i]+ " ");
		}
		
		
		System.out.printf("맞춘 로또 번호는 %d 개입니다!", col);
	}

}

로또 2

// 만 개의 로또 번호를 뽑아 1번부터 45번까지 몇 번이 제일 많이 나왔나 확인하는 프로그램

public class Exam_16 {
	public static void main(String[] args) {
		
		int roto[] = new int[10002];
		int co[] = new int[47];
		for (int i = 1; i <= 45; ++i) {
			co[i] = i;
		}
		int num[] = new int[47];
		for (int i = 1; i <= 45; ++i) {
			num[i] = 0;
		}
		int score[] = new int[47];
		for (int i = 1; i <= 45; ++i) {
			score[i] = 0;
		}
		
		
		
		// 만번 돌려서 숫자에 몇 번 나왔는지 저장히기
		for (int i = 1; i <= 10000; ++i) {
			roto[i] = (int)(Math.random()*45+1);
			for(int j = 1; j <= 45; ++j) {
					if (roto[i] == co[j]) {
						num[j]++;
					}
				}
		}
		
		
		// 가장 많이 나온 스코어 알아보기
		for(int i = 1; i <= 45; ++i) {
			for (int j = 1; j <= 45; ++j) {
				if (num[j] > num[i]) {
					score[j]++;
				}
			}
		}
		
		
		// 순위 매기기
		int co1 = 0;
		for(int i = 1; i <= 6; ++i) {
			for(int j=1; j <=45; ++j) {
				if (i == score[j])
					System.out.println(j + " ");
					co1++;
					if (co1 > 6) System.exit(0);
			}
		}
		
		
		
	}
}


야구 게임

// 야구 게임

import java.io.IOException;
import java.util.Scanner;

public class Exam01 {
	public static void main(String[] args) throws IOException{
		
		int com[] = new int[4];
		int user[] = new int[3];
		int str = 0;
		int ball = 0;
		int co = 0;
		int out = 0;

		
		
			
			for (int i=0; i<3; ++i) {
				com[i] = (int)((Math.random()*9)+1);
				for (int j = 0; j < i; ++j)
					if (com[i] == com[j]) {
						i--;
						break; 
					}
			}
			System.out.printf("%d %d %d", com[0], com[1], com[2]);
			
			while (true) {
			Scanner in = new Scanner(System.in);
			
			System.out.println("숫자 세 개 입력 : ");
			for (int i=0; i < 3; ++i) {
				user[i] = System.in.read()-48;
			}
			
			
			for (int i=0; i < 3; ++i) {
				if (com[i] == user[i]) {
					str++;
				}else if(com[i] != user[i]) {
					for(int j=0; j<3; ++j) {
						if (com[i] == user[j]) {
							ball++;
						}else {
							out++;
						}
					}
				}
			}
			
			co++;
			
			if (out == 9) {
				System.out.println("OUT");
			}else if(str == 3){
				System.out.println(co + "번 만에 맞히셨습니다!");
				break;
			}else {
				System.out.printf("%dS %dB", str, ball);
			}
			
			str = 0;
			ball = 0;
			
			
		}
		
		
	}
}

SELECT sort 알고리즘

// 선택 정렬 알고리즘
// 위치 값을 지정하고 뒤 값이랑 비교해서 더 작은 수가 있다면 자리를 바꿈

import java.util.Scanner;

public class Exam_02 {
	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		
		int num[] = new int[10];
		
		
		for(int i = 0; i < 10; ++i) {
			System.out.println(i+1 + "번째 숫자를 입력하세요 : ");
			num[i] = in.nextInt();
		}
		
		for(int i = 0; i < num.length-1; ++i) {
			for(int j = i + 1; j < 10; ++j) {
				if (num[i] > num[j]) {
					int k = num[j];
					num[j] = num[i];
					num[i] = k;
				}
			}
		}
		
		for(int i = 0; i < 10; ++i) {
		System.out.print(num[i] + " ");
		}
		
	}
}

bubble sort 알고리즘

// 버블 정렬 알고리즘
// 자기 바로 뒤 숫자랑 비교해서 앞이 더 크면 바꾸기
public class Exam_03 {
	public static void main(String[] args) {
		
		int arr[] = new int[10];
		
		for (int i = 0; i < 10; ++i) {
			arr[i] = (int)(Math.random()*100+1);
			for (int j = 0; j < i; ++j)
				if (arr[i] == arr[j]) {
					i--;
					break; 
				}
		}
		
		
		System.out.print("정렬하기 전 : ");
		for (int i = 0; i < 10; ++i) {
			System.out.print(arr[i] + " ");
		}
		
		for(int i = arr.length-2; i >=0; --i) {
			for(int j = 0; j <= i; ++j) {
				if (arr[j] > arr[j+1]) {
					int k = arr[j];
					arr[j] = arr[j + 1];
					arr[j+1] = k;
                    co++;
				}
			}
            if (co == 0) break;
			
		}
		
		System.out.print("\n정렬한 후 : ");
		for (int i = 0; i < 10; ++i) {
			System.out.print(arr[i] + " ");
		}
		
	}
}
profile
자바 백엔드 개발자 개인 위키

0개의 댓글

관련 채용 정보