๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ ์ด๋ก 

Array(๋ฐฐ์—ด) - (์„ ํ˜•)์ž๋ฃŒ๊ตฌ์กฐ

by sh119 2024. 6. 19.

 

Array (๋ฐฐ์—ด)์€ ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋‚˜์—ดํ•œ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. 

โœ๏ธ Array์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„

  1. ์ธ๋ฑ์Šค๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(1)
    ใ„ด ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์œ„์น˜์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. ์‚ฝ์ž… ์‚ญ์ œ์‹œ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(n) 
    ใ„ด ์‚ฝ์ž…, ์‚ญ์ œ์‹œ ํ•ด๋‹น ์œ„์น˜ ์ดํ›„์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ์ด๋™์‹œ์ผœ์•ผํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ์ข‹์ง„ ์•Š๋‹ค. 

 

โœ๏ธ Array์˜ ์žฅ์ 

  1. ๊ตฌํ˜„์ด ์‰ฝ๋‹ค.
  2. ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋ฏ€๋กœ ์ ‘๊ทผ(๊ฒ€์ƒ‰)์ด ๋น ๋ฅด๋‹ค.
  3. ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ๋˜ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜๋ฏ€๋กœ ์ธ์ ‘ํ•œ ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์บ์‹œ ์ง€์—ญ์„ฑ์ด ์ข‹์•„ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. 
  5. ์ฐธ์กฐ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.
  6.  ๋‹ค์ฐจ์›์œผ๋กœ ๊ตฌํ˜„๊ฐ€๋Šฅํ•˜๋‹ค. (ํ–‰๋ ฌ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ํ‘œํ˜„ํ• ๋•Œ ์œ ์šฉํ•˜๋‹ค)

 

โœ๏ธ Array์˜ ๋‹จ์ 

  1. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์„ ์–ธ์‹œ ๊ณ ์ •๋˜๋ฏ€๋กœ ์ƒˆ๋กœ์šด ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„  ์›ํ• ๋•Œ๋Š” ๋‹ค์‹œ ์„ ์–ธ ํ›„ ์˜ฎ๊ฒจ์•ผ ํ•œ๋‹ค.
  2. ๋˜ํ•œ ๊ฐ™์€ ์ด์œ ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ณต๊ฐ„๋„ ๋ฐฐ์—ด ์„ ์–ธ์‹œ ํ• ๋‹น๋˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋‚ญ๋น„๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. 
  3. ์‚ฝ์ž…, ์‚ญ์ œ์‹œ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ํ•œ ์นธ์”ฉ ์˜ฎ๊ฒจ์•ผํ•˜๋ฏ€๋กœ ํšจ์œจ์ ์ด์ง€ ์•Š๋‹ค. (์‹œ๊ฐ„๋ณต์žก๋„ O(n))

 

โœ๏ธ ๋ฒˆ์™ธ) Array ์„ ์–ธ์‹œ ํ•œ ์นธ์— ํ• ๋‹น๋˜๋Š” ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ (๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋งŒ, ์ด์™ธ์—๋„ ๋งŽ์€ ์ž๋ฃŒํ˜•์ด ์žˆ์Œ)

  • int : 4byte
  • boolean : 1byte
  • char : 1byte
  • float : 4byte
  • double : 8byte

 

โœ๏ธ Array ๊ด€๋ จ ๋ฌธ์ œ๋“ค 

  • ๋ฐฑ์ค€ 10818๋ฒˆ : ์ตœ์†Œ, ์ตœ๋Œ€  (์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฒ„์ „, Array.sort()๋ฅผ ์ด์šฉํ•œ ๋ฒ„์ „)
package baekjoon.dataStructure.array;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Num10818 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int[] arr = new int[n];
        for(int i=0; i<n; i++){
            arr[i] = Integer.parseInt(st.nextToken());
        }

        int min = 1000000;
        int max = -1000000;
        for(int i=0; i<n; i++){
            if(arr[i] < min){
                min = arr[i];
            }
            if(arr[i] > max){
                max = arr[i];
            }
        }
        System.out.println(min + " " + max);
    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.Arrays;

public class Num10818 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int[] arr = new int[n];
        for(int i=0; i<n; i++){
            arr[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(arr);
        System.out.println(arr[0] + " " + arr[n-1]);
    }
}
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด
import java.util.Arrays;
class Solution {
    public int[] solution(int[] arr, int divisor) {
        int count = 0;
        for(int i=0; i<arr.length; i++){
            if(arr[i] % divisor != 0){
                arr[i] = -1;
            }else{
                count++;
            }
        }
        if(count == 0){
            int[] result = {-1};
            return result;
        }
        int[] answer = new int[count];
        Arrays.sort(arr);
        
        for(int i=0; i<count; i++){
            answer[i] = arr[arr.length-count+i];
        }
        
        return answer;
    }
}