본문 바로가기

Algorithm

배열(2022.05.29)

선언방식 

ex)

int[] a , a = new int[5]; //a는 길이가 5인 배열을 참조한다 

int[] a = new int[5]

 

요솟값을 초기화하며 배열 선언 

int [] a = {1,2,3,4,5}

 

배열의 복제 

  • 얕은 복사
  • 깊은 복사 

얕은복사 

ex)

int [a] = {1,2,3} 

int[] b = a

> 주소를 이어주는 의미. b값을 수정하면 a의 값도 수정된다 

 

깊은 복사

ex)

배열 이름.clone()

int [a] = {1,2,3}

int[] b = a.clone()

 

배열요소의 최댓값 구하기 

package com.heejin.doit.ex01;

import java.util.Scanner;

public class Max3 {
  public static void main(String[] args) {
    Scanner stdIn = new Scanner(System.in);
    
    System.out.println("세 정수의 최댓값 구합니다.");
    System.out.print("a의 값 : "); int a = stdIn.nextInt();
    System.out.print("b의 값 : "); int b = stdIn.nextInt();
    System.out.print("c의 값 : "); int c = stdIn.nextInt();
    
    int max = a;
    if (b > max) max = b;
    if (c > max) max = c;
    //if문을 통해 max값을 새로 지정해주는 방식 
    System.out.println("최댓값은 " + max + "입니다.");
  }
}

 

배열요소를 역순으로 정리하기 

class ReverseArrayProcess{
	static void swap(int[] a, int idx1, int idx2){
		int t =a[idx1]; a[idx1]= a[idx2]; a[idx2] = t;
        ///a[idx1]과 a[idx2]의 값을 바꾸는 과정 
	}
	static void reverse(int[] a){
		for(int i = 0; i < a.length/2; i++){
			System.out.println("a["+ i + "]와 a[" + (a.length - 1 - i) + "]를 교환합니다.");
			swap(a, i, a.length - i - 1);
			}
    public static void main(String[] args) { 
    	Scanner stdIn = new Scanner(System.in);
        System.out.print("요솟수 : ");
        int num = stdIn.nextInt();
        int[] x = new int[num];
        for (int i =0; i < num; i++){
        	System.out.println("x[" + i + "] : ")l
            x[i] = stdIn.nextInt();
        }   
        reverse(x);   
        System.out.println("요소를 역순으로 정렬했습니다.");
        for( int i = 0; i<num; i++)
        	System.out.println("x["+i+"] = " + x[i]);
		}
}

 

또 다른 방법 

int[] arr = { 1, 2, 3, 4, 5 };
int[] reverseArr = new int[5];
for(int i = arr.length-1,j=0; i>=0; i--, j++){
	reverseArr[j] = arr[i];
    }

 

'Algorithm' 카테고리의 다른 글

검색(선형 검색, 보초법,이진 검색  (0) 2022.06.06
다차원배열과 확장 for문의 장점  (0) 2022.06.06
에라토스테네스의 체  (0) 2022.06.06
소수 판별 알고리즘  (0) 2022.06.06
Algorithm(2022.05.10)-Algorithm이란?  (0) 2022.05.10