You are using an outdated browser. Please upgrade your browser to improve your experience.

두 배열의 비교

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);
  }
}