지난 학습 내용 복습
참 거짓 5개를 저장하는 배열 만들기
public static void main(String[] args) {
boolean check[] = new boolean[5];
for (int i = 0; i < check.length; i++) {
check[i] = (i % 2 == 0) ? false : true; // i 가 짝수 일 경우 false 반환
}
for (boolean b : check) {
System.out.println(b);
}
}
친구 집에 놀러가 WIFI 비밀번호를 물어보았더니
답변을 일이삼사오륙 이라고 했다
비밀번호가 맞지 않아 다시 물어보았더니
113333555555 라고 답변하였다
1 2 3 4 5 6 을 입력하였을 때 113333555555 을 출력해보기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 방법 1, 배열로 만들어보기
int[] temp = new int[6];
for (int i = 0; i < temp.length; i++) {
temp[i] = sc.nextInt();
}
for (int i = 0; i < temp.length; i+=2) {
for (int j = 0; j < temp[i + 1]; j++) {
System.out.print(temp[i]);
}
}
// 방법 2, 문자열에 숫자 더해 만들어보기
String stringpw = "";
while (true){
int pw = sc.nextInt();
int count = sc.nextInt();
for (int i = 0; i < count; i++) {
stringpw += pw;
}
if (pw == 5){
break;
}
}
System.out.println(stringpw);
}
간단하게 구현해보기
String a = sc.nextLine();
for (int i = 0; i < a.length(); i+=2) { // 원하는 비밀번호 자릿수 만큼 반복
for (int j = 0; j < (int) a.charAt(i+1) - 48; j++) { // 입력받은 문자의 홀수번 수만큼 반복
System.out.print(a.charAt(i));
}
}
시리얼 번호 만들기
// 시리얼 번호 만들기
// A ~ X, 1 ~ 9
// AADDA-ADDAA-ADAAD-ADDDD-AAAAD
public class Test03 {
public static void main(String[] args) {
// char c = (char) (Math.random() * 23 + 66); // 대문자
// char c = (char) (Math.random() * 9 + 49); // 숫자
String pattern = "AADDA-ADDAA-ADAAD-ADDDD-AAAAD"; // 기준이 되는 값 적어두기
String serialData[] = new String[10];
for (int j = 0; j < serialData.length; j++) {
String serial = "";
for (int i = 0; i < pattern.length(); i++) {
if (pattern.charAt(i) == 'A') {
serial += Character.toString((char) (Math.random() * 24 + 65)); // ASCII 65 ~ 88 출력
} else if (pattern.charAt(i) == 'D') {
serial += Character.toString((char) (Math.random() * 9 + 49)); // ASCII 49 ~ 57 출력
} else {
serial += "-";
}
serialData[j] = serial;
}
}
for (String s : serialData ) {
System.out.println(s);
}
}
}
배열 간의 거리 차이가 가장 작은 값 출력하기
public static void main(String[] args) {
int[] s = {1, 3, 4, 8, 13, 17, 20};
int first = s[0], second = s[1];
int temp = s[1] - s[0]; // 거리차이를 저장할 변수
for (int i = 1; i < s.length - 1; i++) {
if (temp > s[i+1] - s[i]) {
temp = s[i + 1] - s[i];
first = s[i];
second = s[i+1];
}
}
System.out.println(first + " " + second);
}
다차원 배열
// 다차원 배열
// 2차원 배열 멀티 어레이 = 배열 속에 배열이 있음
// index, length 를 이해하고 있어야 활용이 가능
public static void main(String[] args) {
int numbers[] = new int[5];
int numbers2[] = {1,2,3,4,5};
int numbers3[] = new int[] {1,2,3,4,5};
int numbers4[][] = new int[5][5]; // 25 개의 값 저장 가능
int numbers5[][] = new int[2][3]; // 6 개의 값 저장 가능
int numbers6[][] = {{1,2,3}, {3,4,5,6}, {4,5,6,7,8}}; // 2차원 배열 예시
for (int i = 0; i < numbers4.length; i++) {
for (int j = 0; j < numbers4[i].length; j++) { // numbers4 배열에 값 저장하기
numbers4[i][j] = j;
}
}
for (int i = 0; i < numbers4.length; i++) {
for (int j : numbers4[i]) {
System.out.print(j + " ");
}
System.out.println();
}
for (int i = 0; i < numbers6.length; i++) { // 2차원 배열 반복문 하는 법
for (int j = 0; j < numbers6[i].length; j++) {
System.out.print(numbers6[i][j]);
}
System.out.println();
}
}
scores 라는 배열을 만들어
1 ~ 6 까지 저장하기
int scores[][] = new int[2][3];
int temp = 1;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores[i].length; j++) {
scores[i][j] = temp++; // 후행연산, 값을 대입 후 ++ 가 실행
System.out.print(scores[i][j]);
}
System.out.println();
}
for each 활용하여 배열 값 확인하기
for (int[] i : scores) {
System.out.println(Arrays.toString(i));
}
[1, 2, 3]
[4, 5, 6] 출력
System.out.println(Arrays.deepToString(scores));
[[1, 2, 3], [4, 5, 6]] 출력
배열 값 지정하기
// arr02[][] : { {10, 20, 30}, {40, 50, 60} } 만들어보기
int temp1 = 10;
int arr02[][] = new int[2][3];
for (int i = 0; i < arr02.length; i++) {
for (int j = 0; j < arr02[i].length; j++) {
arr02[i][j] = temp1;
temp1 += 10;
}
}
System.out.println(Arrays.deepToString(arr02));
ListArray 만들어보기
ArrayList - List 의 크기가 유동적으로 변함
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list); // [1,2,3,4]
list.remove(0);
System.out.println(list); // [2,3,4]
list.add(1);
System.out.println(list); // [2,3,4,1]
list.add(1, 0);
System.out.println(list); // [2,0,3,4,1]
System.out.println(list.get(0)); // 2, 0 번 index 의 값을 가져옴
System.out.println(list.size()); // 5
list.set(0, 100); // 0 번 index 의 값을 100 으로 수정
1 ~ 9 까지의 숫자 중 중복 없이 배열에 집어 넣기
A : for (int i = 0; i < arr.length; i++) { // 배열 저장하는 반복문
B : for (int j = 0; j < arr[i].length; j++) {
int temp = (int) (Math.random() * 9 + 1);
C : for (int k = 0; k < arr.length; k++) { // 배열 중복 검사하는 반복문
D : for (int l = 0; l < arr[k].length; l++) {
if (temp == arr[k][l]) {
System.out.println("중복 발생 : arr[" + i + "]["
+ j + "] : " + temp + " " + Arrays.deepToString(arr) );
j--;
continue B; // 중복이 발생하면 j 값 1 을 빼고 B 처음부터 시작
}
}
}
arr[i][j] = temp;
}
}
1 ~ 16 까지의 숫자를 중복 없이 집어넣기
대신 배열의 수를 랜덤으로 출력
arr = new int[4][4];
for (int i = 1; i <= 16; i++) { // 숫자
int r1, r2;
r1 = (int) (Math.random() * 4);
r2 = (int) (Math.random() * 4);
if (arr[r1][r2] == 0) {
arr[r1][r2] = i;
} else {
i--;
}
}
while
while (조건) {
// 조건이 참이면 실행되는 부분
}
1 ~ 10 까지 출력하는 while 문
public static void main(String[] args) {
int i = 1;
while ( i < 11 ) { // 조건 확인 true 면 실행
System.out.println(i + " 번 입니다.");
i++; // 무한 반복을 방지하기 위해 증감식 사용
}
}
책 혼자 공부하는 자바 의 배열 예제 풀어보기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean run = true;
int students = 0;
int[] scores = null;
while (run) {
System.out.println("--------------------------------");
System.out.println("1. 학생 수 | 2. 점수 입력 | 3. 점수 리스트 | 4. 분석 | 5. 종료");
System.out.println("--------------------------------");
System.out.print("입력 : ");
int temp = sc.nextInt();
if (temp == 1) {
System.out.print("학생 수 입력 : ");
students = sc.nextInt();
} else if (temp == 2) {
scores = new int[students];
for (int i = 0; i < scores.length; i++) {
System.out.print("scores[" + i + "] : ");
scores[i]= sc.nextInt();
}
} else if (temp == 3) {
for (int i = 0; i < scores.length; i++) {
System.out.println("scores[" + i + "] : " + scores[i]);
}
} else if (temp == 4){
int max = scores[0];
int avg = 0;
for (int i = 1; i < scores.length; i++) {
if (max < scores[i]) {
max = scores[i];
}
}
for (int i = 0; i < scores.length; i++) {
avg += scores[i];
}
System.out.println("최고점 : " + max);
System.out.println("평균값 : " + avg / scores.length);
} else if (temp == 5) {
run = false;
}
}
System.out.println("프로그램 종료");
}
'JAVA' 카테고리의 다른 글
231212 Java (0) | 2023.12.12 |
---|---|
231211 Java (2) | 2023.12.11 |
231207 Java (0) | 2023.12.07 |
231206 Java (2) | 2023.12.06 |
231205 Java (0) | 2023.12.05 |