-
배열을 연습 예제(로또 번호 생성)카테고리 없음 2024. 1. 25. 09:40
// 로또 번호 발생기를 만드세요 // 로또 게임 규칙 // 1. 총 6개의 랜덤한 정수로 발생시킬 것 > int 형 값을 6 개 담을 수 있는 배열 생성 // 2. 정수의 범위는 1 ~ 45 임 > Math.random() 메소드 공식 // 3. 절대 중복되는 숫자값이 발생되면 안됨 > 중복 제거 0번째 랜덤값 > 1번째 랜덤값 > 2번째 랜덤값 // 4. 최종 뽑힌 6개의 숫자는 작은 숫자에서 큰 숫자 순서로 배치되어야만 함 > 정렬 (sort) // 오름차순 정렬 : 가나다순, abc순, 123순 > Arrays.sort(배열명); // 내림차순 정렬 : 가나다순의 역순, abc순의 역순, 123순의 역순 // [x, x, x, x, x, x] 형태로 출력
public void method12() { // 배열 선언 int[] arr = new int[6]; System.out.print("로또번호 : "); // 로또번호 6개 생성, 배열에 대입 for (int i = 0; i < arr.length; i++) { arr[i] = (int) ((Math.random() * 45) + 1); // 로또번호 중복 제거 for (int j = 0; j < i; j++) { if (arr[i] == arr[j]) { i--; break; } } } // 배열 오름차순 정렬 Arrays.sort(arr); for (int i : arr) { System.out.print(i + " "); } }
>문제2
길이가 10인 정수형 배열을 만들고 반복문을 이용하여
순서대로 배열 인덱스에 넣은 후 그 값을 다음과 같이 출력하세요.
ex.
1 2 3 4 5 6 7 8 9 10public void method13() { int[] arr = new int[11]; for (int i = 1; i < 11; i++) { arr[i] += i; System.out.print(arr[i] + " "); } }
>문제 3
길이가 10인 정수형 배열을 만들고 반복문을 이용하여
역순으로 배열 인덱스에 넣은 후 그 값을 출력하세요.
ex.
10 9 8 7 6 5 4 3 2 1public void method14() { int[] arr = new int[11]; for (int i = 10; i > 0; i--) { arr[i] = i; System.out.print(arr[i] + " "); } }
>문제4
사용자에게 입력 받은 양의 정수만큼 배열 크기를 할당하고
1부터 입력 받은 값까지 배열에 초기화한 후 출력하세요.
ex.
양의 정수 : 5
1 2 3 4 5public void method15() { Scanner sc = new Scanner(System.in); System.out.print("양의 정수 입력 : "); int num = sc.nextInt(); sc.nextLine(); int arr[] = new int[num + 1]; for (int i = 1; i <= num; i++) { arr[i] += i; System.out.print(arr[i] + " "); } }
>문제5
길이가 5인 String배열을 선언하고 “사과”, “귤“, “포도“, “복숭아”, “참외“로 초기화 한 후
배열 인덱스를 활용해서 귤을 출력하세요.
ex.
귤public void method16() { String[] arr = new String[5]; arr[0] = "사과"; arr[1] = "귤"; arr[2] = "포도"; arr[3] = "복숭아"; arr[4] = "참외"; System.out.println(arr[1]); }
>문제6
메소드 명 : public void practice5(){}
문자열을 입력 받아 문자 하나하나를 배열에 넣고 검색할 문자가 문자열에 몇 개 들어가 있는지
개수와 몇 번째 인덱스에 위치하는지 인덱스를 출력하세요.
ex.
문자열 : application
문자 : i
application에 i가 존재하는 위치(인덱스) : 4 8
i 개수 : 2public void method17() { Scanner sc = new Scanner(System.in); System.out.print("문자열을 입력하세요 : "); String str = sc.nextLine(); System.out.print("문자를 입력하세요 : "); String str2 = sc.nextLine(); char arr[] = new char[str.length() + 1]; System.out.print(str + "에" + str2 + "가 존재하는 위치(인덱스) : "); int num = 0; for (int i = 0; i < str.length(); i++) { arr[i] = str.charAt(i); if (arr[i] == str2.charAt(0)) { System.out.print(i + " "); num++; } } System.out.println(); System.out.println(str2 + " 개수" + "=" + num); }
>문제7
“월“ ~ “일” (요일)까지 초기화된 문자열 배열을 만들고 0부터 6까지 숫자를 입력 받아
입력한 숫자와 같은 인덱스에 있는 요일을 출력하고
범위에 없는 숫자를 입력 시 “잘못 입력하셨습니다“를 출력하세요.
ex.
0 ~ 6 사이 숫자 입력 : 4 0 ~ 6 사이 숫자 입력 : 7
금요일 잘못 입력하셨습니다public void method18() { String[] week = { "월", "화", "수", "목", "금", "토", "일" }; Scanner sc = new Scanner(System.in); System.out.print("0~6사이 숫자 입력 : "); int num = sc.nextInt(); sc.nextLine(); if (num >= 7 || num < 0) { System.out.println("잘못 입력하셨습니다."); } else if (0<=num || num<7) { System.out.println(week[num]); } }
>문제8
사용자가 배열의 길이를 직접 입력하여 그 값만큼 정수형 배열을 선언 및 할당하고
배열의 크기만큼 사용자가 직접 값을 입력하여 각각의 인덱스에 값을 초기화 하세요.
그리고 배열 전체 값을 나열하고 각 인덱스에 저장된 값들의 합을 출력하세요.
ex.
정수 : 5
배열 0번째 인덱스에 넣을 값 : 4
배열 1번째 인덱스에 넣을 값 : -4
배열 2번째 인덱스에 넣을 값 : 3
배열 3번째 인덱스에 넣을 값 : -3
배열 4번째 인덱스에 넣을 값 : 2
4 -4 3 -3 2
총 합 : 2public void method19() { Scanner sc = new Scanner(System.in); System.out.print("정수를 입력하세요 : "); int num = sc.nextInt(); int sum =0; sc.nextLine(); int[] index = new int[num]; for (int i = 0; i < num; i++) { System.out.print("배열 " + i + "번째 인덱스에 넣을 값 : "); index[i] = sc.nextInt(); sc.nextLine(); } for (int j = 0; j < num; j++) { System.out.print(index[j] + " "); } for(int s =0; s<num; s++) { sum+=index[s]; } System.out.println(); System.out.println("총합 : " + sum); } }
>문제9
10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고
1~10 사이의 난수를 발생시켜 배열에 초기화한 후 출력하세요.
ex.
9 7 6 2 5 10 7 2 9 6public void method20() { int[] arr = new int[10]; for(int i=0; i<arr.length; i++) { arr[i] = (int) ((Math.random() * 10) + 1); System.out.print(arr[i] + " "); } }
>문제10
10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고
1~10 사이의 난수를 발생시켜 배열에 초기화 후
배열 전체 값과 그 값 중에서 최대값과 최소값을 출력하세요.
ex.
5 3 2 7 4 8 6 10 9 10
최대값 : 10
최소값 : 2public void method20() { int[] arr = new int[10]; int max = arr[0]; int min = 10; for (int i = 0; i < arr.length; i++) { arr[i] = (int) ((Math.random() * 10) + 1); System.out.print(arr[i] + " "); } for (int i = 0; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } } System.out.println(); System.out.println("최댓값 : " + max); System.out.println("최소값 : " + min); } }
>문제11
주민등록번호를 String 문자열로 입력 받고 입력 받은 그 문자열을 각 인덱스 별 문자를
char[]에 옮겨 담기 (단, 성별 자리 이후부터는 *로 담기)
ex.
주민등록번호(-포함) : 123456-1234567
123456-1******