아래의 코드들은 해당 패키지에서 작성되었다.
package com.kh.practice.array;
import java.util.Arrays;
import java.util.Scanner;
public class ArrayPractice {
}
public void practice10() {
// 주민등록번호 성별자리 이후부터 *로 가리고 출력
// 단, 원본 배열 값은 변경 없이 배열 복사본으로 변경
Scanner sc = new Scanner(System.in);
System.out.print("주민등록번호(-포함) : ");
String userNum = sc.nextLine();
char [] user = new char[userNum.length()];
for(int i=0; i<user.length; i++) {
user[i] = userNum.charAt(i);
}
char [] newNum = new char[user.length];
System.arraycopy(user, 0, newNum, 0, 8);
for(int j=8; j<newNum.length; j++) {
newNum[j] = '*';
}
for(int k=0; k<newNum.length; k++) {
System.out.print(newNum[k]);
}
}
public void practice11() {
// 10개의 값 저장 가능한 정수형 배열 선언 및 할당
// 1~10 사이의 난수 발생
// 배열에 초기화한 후 출력
int [] arr = new int[10];
int num = 0;
for(int i=0; i<arr.length; i++) {
num = (int)(Math.random()*10+1);
arr[i] = num;
System.out.print(arr[i]+" ");
}
}
public void practice12() {
// 10개의 값을 저장할 수 있는 정수형 배열 선언 및 할당
// 1~10 사이의 난수 발생
// 배열 초기화
// 배열 전체 값과 그 값 중에서 최대값과 최소값을 출력
int [] arr = new int[10];
int num = 0;
int max = 0;
int min = 1;
for(int i=0; i<arr.length; i++) {
num = (int)(Math.random()*10+1);
arr[i] = num;
System.out.print(arr[i]+" ");
if(max<arr[i]) {
max = arr[i];
} else if(min>arr[i]) {
min = arr[i];
}
}
System.out.println("\\n최대값 : "+max);
System.out.println("최소값 : "+min);
}
다른 풀이
처음 문제 13번을 풀었던 코드
public void practice13() {
// 10개의 값을 저장할 수 있는 정수형 배열 선언 및 할당
// 1~10 난수 발생시켜 초기화
// 중복은 x
int [] arr = new int[10];
for(int i=0; i<arr.length; i++) {
arr[i] = (int)(Math.random()*10+1);
// 넣을 배열 전까지를 훑어보기
for(int j=0; j<i; j++) {
if(arr[j] == arr[i]) {
i--;
break; // 연속으로 같은 값이 존재하면 i--가 두 번 실행됨
}
}
}
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i]+" ");
}
}