본문 바로가기
알고리즘

Do It! 자료구조와 함께 배우는 알고리즘 - 두 배열의 비교

by Love of fate 2021. 9. 19.
728x90
반응형
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
package com.example.demo.algorism;
 
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
 
public class ArrayEqual{
    //두배열의 비교
 
    //두 배열이 같은가를 판단
 
    // 두 배열 a, b의 모든 요소가 같은가?
    static boolean equals(int a[], int b[]){
 
        if(a.length != b.lengthreturn false;
 
        for(int i = 0; i < a.length; i++){
            if(a[i] != b[i]) return false;
        }
        return true;
    }
 
    //배열 b의 모든 요소를 배열 a에 복사하는 메서드 copy를 작성하세요
    static int [] copy(int [] a, int [] b){
        a = b.clone();
        return a;
    }
 
    //배열 b의 모든 요소를 배열 a에 역순으로 복사하는 메서드 rcopy를 작성하세요
    static int [] rcopy(int [] a, int [] b){
 
        for (int i = 0; i < b.length/2; i++) {
            int n = b[b.length-(1+i)];
            b[b.length-(1+i)] = b[i];
            b[i] = n;
        }
        a = b.clone();
        return a;
    }
 
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
 
        System.out.print("배열의 a의 요솟수 : ");
        int na = stdIn.nextInt();
 
        int [] a = new int[na];
 
        for (int i = 0; i < na; i++) {
            System.out.print("a["+ i + "] : ");
            a[i] = stdIn.nextInt();
        }
 
        System.out.print("배열 b의 요솟수 : ");
        int nb = stdIn.nextInt();
 
        int [] b = new int[nb];
 
        for (int i = 0; i < nb; i++) {
            System.out.print("b[" + i + "] :");
            b[i] = stdIn.nextInt();
        }
        System.out.println("배열 a와 b는 " + (equals(a,b) ? "같습니다" : "같지 않습니다"));
 
        System.out.println("--------------------------------------------------------");
 
        a = copy(a, b);
 
        for (int i = 0; i < a.length; i++) {
            System.out.println("a[" + i + "] :" + a[i]);
        }
 
        System.out.println("--------------------------------------------------------");
 
        a = rcopy(a, b);
 
        for (int i = 0; i < a.length; i++) {
            System.out.println("a[" + i + "] :" + a[i]);
        }
    }
}
cs

[결과값]

728x90
반응형