package com.practiceExample.Doit.chap02;
import java.util.Scanner;
public class ArrayEqual {
static boolean equals(int[] a, int[] b) {
if(a.length != b.length) {
return false;
}
for(int i = 0; i < a.length; i++) {
if(a[i] != b[i]) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("배열 a의 요솟수 : ");
int na = scanner.nextInt();
int[] a = new int[na];
for(int i = 0; i < na; i++) {
System.out.print("a[" + i + "] : ");
a[i] = scanner.nextInt();
}
System.out.println("배열 b의 요솟수 : ");
int nb = scanner.nextInt();
int[] b = new int[nb];
for(int i = 0; i < nb; i++) {
System.out.print("b[" + i + "] : ");
b[i] = scanner.nextInt();
}
System.out.println("배열 a와 b는 " + (equals(a, b) ? "같습니다" : "같지 않습니다."));
}
}
문제풀이 - 배열복사
package com.practiceExample.Doit.chap02;
import java.util.Scanner;
public class ArrayCopt {
static void copy(int[] a, int[] b) {
int num;
if(a.length <= b.length) {
num = a.length;
} else {
num = b.length;
}
for(int i = 0; i < b.length; i++) {
a[i] = b[i];
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numa = scanner.nextInt();
int[] a = new int[numa];
for(int i = 0; i < numa; i++) {
System.out.println(i);
a[i] = scanner.nextInt();
}
int numb = scanner.nextInt();
int[] b = new int[numb];
for(int i = 0; i < numb; i++) {
System.out.println(i);
b[i] = scanner.nextInt();
}
copy(a, b);
System.out.println("배열 b의 모든 요소를 배열 a에 복사했습니다.");
for (int i = 0; i < numa; i++)
System.out.println("a[" + i + "] = " + a[i]);
}
}
배열뒤집기 풀이
package com.practiceExample.Doit.chap02;
import java.util.Scanner;
public class ReverseArray3 {
static void swap(int[] arr, int a, int b) {
int t = arr[a];
arr[a] = arr[b];
arr[b] = t;
}
static void reverse(int[] arr) {
for(int i = 0; i < arr.length/2; i++) {
swap(arr, i, arr.length - i -1);
}
print(arr);
}
static void print(int[] arr) {
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
System.out.println();
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("요솟수는 :");
int num = scanner.nextInt();
int[] arr = new int[num];
for(int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
reverse(arr);
}
}
진수변환 예제
package com.practiceExample.Doit.chap02;
import java.util.Scanner;
public class CardConvRev {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int no; // 변환하는 정수
int cd; // 기수
int dno; //변환후의 자릿수
int retry; // 다시한번?
char[] cno = new char[32]; // 변환 후 각 자리의 숫자를 넣어두는 문자 배열
System.out.println("10진수 기수 변환");
do {
do {
System.out.println("변환하는 음이 아닌 정수 : ");
no = scanner.nextInt();
} while(no < 0);
do {
System.out.println("어떤 진수로 변환할건가요? (2~36) : ");
cd = scanner.nextInt();
} while(cd<2 || cd > 36);
dno = CardConcRev.cardConvR(no, cd, cno);
System.out.print(cd + "진수로는 ");
for(int i = dno-1; i >= 0; i--) {
System.out.println(cno[i]);
}
System.out.println("입니다.");
System.out.println("한번더? (1:예 / 2:아니요");
retry = scanner.nextInt();
} while(retry == 1);
}
}