1. 랜덤으로 배열 요소값을 생성해 요소값을 역순으로 바꾸기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package myTest1;
 
import java.util.Random;
import java.util.Scanner;
 
public class RandomReverseArrayValue {
 
    // 배열의 요소값을 역순으로 바꾸기
    static void swap(int[] a, int idx1, int idx2){
        int t = a[idx1];
        a[idx1] = a[idx2];
        a[idx2] = t;
    }
    
    public static void main(String[] args) {
        Random rand = new Random();
        Scanner scanner = new Scanner(System.in);
        System.out.println("배열의 길이: ");
        int num = scanner.nextInt();
        
        int[] x = new int[num];
        System.out.println("\n배열길이에 따른 랜덤으로 생성된 배열요소");
        for(int i=0; i<num; i++){
            x[i] = 100 + rand.nextInt(100);
            System.out.println("x[" + i + "] : " + x[i]);
        }
 
        for(int i=0; i< x.length/2; i++){
            int length = x.length-i-1;
            swap(x, i, length);
        }
        
        System.out.println("\n요소를 역순으로 정렬결과");
        for(int i=0; i<num; i++){
            System.out.println("x[" + i + "] = " + x[i]);
        }
        
    }
        
}
cs


결과 값





2. 배열 a,b 복사하기, 같은지 확인하기, 역순으로 복사하기



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package myTest1;
 
import java.util.Scanner;
 
public class CompareEqualArray {
    
    // 두 배열의 요소값이 모두 같은지 확인하기
    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;
    }
    
    // 배열 b의 모든 요소를 배열 a에 복사하기
    static int[] copy(int[] a, int[] b){
        if(a.length != b.length){
            System.out.println("배열 a,b의 길이는 같아야합니다.");
        }else{
            // b.length 3 0 1 2
            for(int i=0; i< b.length; i++){
                a[i] = b[i];
            }
        }
        return a;
    }
    
    // 배열 b의 모든 요소를 배열 a에 역순으로 복사하는 메서드 reverse copy 만들기
    static void reverseCopy(int[] a, int[] b){
        if(a.length != b.length){
            System.out.println("배열 a,b의 길이는 같아야합니다.");
        }else{
            // b요소를 a요소로 복사하기
            copy(a, b);
            // a요소를 reverse하기
            for(int i=0; i< a.length/2; i++){
                int length = a.length-i-1;
                swap(a, i, length);
            }            
        }
    }
    
    // 배열의 요소값을 역순으로 바꾸기
    static void swap(int[] a, int idx1, int idx2){
        int t = a[idx1];
        a[idx1] = a[idx2];
        a[idx2] = t;
    }    
    
    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));
        copy(a,b);
        System.out.println("배열 b요소를 a로 복사하기");
        for (int i=0; i<a.length; i++) {
            System.out.println("a[" + i + "] : " + a[i]);
        }
        reverseCopy(a,b);
        System.out.println("배열 b요소를 배열 a로 역순으로 복사하기");
        for (int i=0; i<a.length; i++) {
            System.out.println("a[" + i + "] : " + a[i]);
        }
    }
}
cs


결과 값



소스코드 첨부 :

myTest1.zip




+ Recent posts