22.5.03 [HackerRank]Java Arraylist

์„œํƒœ์šฑยท2022๋…„ 5์›” 4์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
25/45
post-thumbnail

โœ… ๋ฌธ์ œ ๋ถ„์„

์ฒซ๋ฒˆ์งธ ์ค„์—๋Š” ์ •์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค.(์ „์ฒด ๋ผ์ธ์˜ ์ˆ˜)
๋‹ค์Œ ๊ฐ๊ฐ n ๋ผ์ธ๋“ค์—์„œ ๊ทธ ๋ผ์ธ์— ์†ํ•œ ์ •์ˆ˜๊ฐ€ ๋ช‡์ธ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ d์™€, ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ •์ˆ˜๋“ค์ด ๋‚˜์—ด๋œ๋‹ค.
๋‹ค์Œ ๋ผ์ธ์—๋Š” ์ฟผ๋ฆฌ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ q๊ฐ€ ๋‚˜์˜จ๋‹ค.
๊ฐ ์ฟผ๋ฆฌ๋Š” ๋‘๊ฐœ์˜ ์ •์ˆ˜ x,y๊ฐ€ ๊ตฌ์„ฑ๋œ๋‹ค.

์•„์›ƒํ’‹์˜ ๊ฐ ๋ผ์ธ์—๋Š” x๋ฒˆ์งธ ๋ผ์ธ์˜ y๋ฒˆ์งธ ์ •์ˆ˜๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.
๋งŒ์•ฝ ํ•ด๋‹น ์œ„์น˜๊ฐ€ ์—†์œผ๋ฉด ERROR์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

๐ŸŒฑ ๋ฐฐ๊ฒฝ์ง€์‹

ArrayList๋ž€?


์ž๋ฐ” List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋‹ค.
์ผ๋ฐ˜ ๋ฐฐ์—ด๊ณผ ๋™์ผํ•˜๊ฒŒ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ณ , ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •์ธ Array์™€ ๋‹ค๋ฅด๊ฒŒ, ArrayList๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ•œ๋‹ค.
๋‚ด๋ถ€์ ์œผ๋กœ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰(Capacity)๊ณผ ์‚ฌ์šฉ์ค‘์ธ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ(Size)๊ฐ€ ์žˆ๋‹ค.

1.ArrayList ์ƒ์„ฑ

import java.util.ArrayList;
ArrayList<Integer> integers1 = new ArrayList<Integer>(); // ํƒ€์ž… ์ง€์ •
ArrayList<Integer> integers2 = new ArrayList<>(); // ํƒ€์ž… ์ƒ๋žต ๊ฐ€๋Šฅ
ArrayList<Integer> integers3 = new ArrayList<>(10); // ์ดˆ๊ธฐ ์šฉ๋Ÿ‰(Capacity) ์„ค์ •
ArrayList<Integer> integers4 = new ArrayList<>(integers1); // ๋‹ค๋ฅธ Collection๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”
ArrayList<Integer> integers5 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); // Arrays.asList()

2. ArrayList element ์ถ”๊ฐ€/๋ณ€๊ฒฝ

import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<String> colors = new ArrayList<>();
        // add() method
        colors.add("Black"); //๋ฐฐ์—ด ๋งจ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ๊ฐ’์ด ์ถ”๊ฐ€๋œ๋‹ค.
        colors.add("White"); // ์ƒˆ๋กœ ์ถ”๊ฐ€๋  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด(๋‚ด๋ถ€ ๋ฐฐ์—ด์ด ๊ฝ‰ ์ฐจ์žˆ์œผ๋ฉด) ๋” ํฐ ์‚ฌ์ด์ฆˆ์˜ ์ƒˆ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ , ๊ธฐ์กด ๊ฐ’๋“ค์„ ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ณต์‚ฌํ•œ๋‹ค.
        colors.add(0, "Green"); //0๋ฒˆ ์œ„์น˜์— ๊ฐ’ ์ถ”๊ฐ€
        colors.add("Red");

        // set() method
        colors.set(0, "Blue");

        System.out.println(colors);
    }
}

3. ArrayList ๊ฐ’ ์‚ญ์ œ

import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<String> colors = new ArrayList<>(Arrays.asList("Black", "White", "Green", "Red"));
        String removedColor = colors.remove(0); //0๋ฒˆ ๊ฐ’์„ ์ œ๊ฑฐ, ๋’ค์ชฝ์— ์žˆ๋Š” ํ•ญ๋ชฉ์€ ํ•œ์นธ์”ฉ ์•ž์œผ๋กœ ๋•ก๊ฒจ์ง€๊ฒŒ ๋œ๋‹ค.
        System.out.println("Removed color is " + removedColor);

        colors.remove("White");
        System.out.println(colors);

        colors.clear(); // ArrayList ๋น„์šฐ๊ธฐ
        System.out.println(colors);
    }
}

3. ArrayList์•ˆ์— ArrayList๋งŒ๋“ค๊ธฐ

aList๋ผ๋Š” ArrayListํ˜• ์ƒ์ž ์•ˆ์—, a1์ด๋ผ๋Š” ArrayListํ˜• ์ƒ์ž,
a2๋ผ๋Š” ArrayListํ˜• ์ƒ์ž๊ฐ€ ์žˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  a1์—๋Š” 1,2๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๊ณ  a2์—๋Š” 3์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.
1,2๋ฅผ ๊บผ๋‚ด๋ ค๋ฉด ๋ฐ”๊นฅ์—์„œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ aList.get()ํ•œ ๋’ค, ๋˜ get()๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

import java.util.*:

public class Main {
 	public static void main(String[] args){
    ArrayList<ArrayList<Integer>โ€บ aList = new ArrayList<ArrayList<Integer>>
    ArrayList<Integer> a1 = new ArrayList<Integer>();
	a1.add(1);
	a1.add(2);
	aList.add(a1);

	ArrayList<Integer> a2 = new ArrayList<Integer>();
	a2.add(3);
	aList.add(a2);

	for (int i = 0; i < aList.size(); i++) {
		for (int j = 0; j < aList.get(i).size(); j++) {
			System.out.print(aList.get(i).get(j) +" ");
	    }
		System.out.println();
	 }
   }
}

โœ๏ธ ํ•ด์„ค

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class JavaArraylist {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        ArrayList<ArrayList<Integer>> lines = new ArrayList<>();
        //ArrayList ์ œ๋„ค๋ฆญ์•ˆ์— ArrayList๋ฅผ ๋„ฃ์–ด 2์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•œ๋‹ค.
        for(int i=0; i<n; i++) { //๋‚ด๋ถ€ arraylist์— ๊ฐ’์„ ๋‹ด์€ ๋ฐ˜๋ณต๋ฌธ
            int d = sc.nextInt();// d๋Š” ๊ทธ line์— integer๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ž…๋ ฅ๊ฐ’
            ArrayList<Integer> line = new ArrayList<>();// ๊ฐ line์— ArrayList๋กœ ๋‹ด๊ธธ integer๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
            for(int j=0; j<d; j++) line.add(sc.nextInt());
            lines.add(line);
        }

        int q = sc.nextInt(); //์ฟผ๋ฆฌ ๊ฐฏ์ˆ˜๋ฅผ ๋œปํ•จ
        for(int i=0; i<q; i++) { //๋ฐฐ์—ด์ด๋ฏ€๋กœ 0๋ถ€ํ„ฐ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉฐ x,y๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค.
            int x = sc.nextInt();
            int y = sc.nextInt();
            try { //๋ฐ›์•„์˜จ x,y๊ฐ’์œผ๋กœ lines์˜ ๋ฐฐ์—ด์—์„œ ๊ฐ’์„ ์ฐพ์•„ ์ถœ๋ ฅํ•œ๋‹ค.
                System.out.println( lines.get(x-1).get(y-1) );
            } // ํ•ด๋‹น ๋ฐฐ์—ด์— ๊ฐ’์ด ์—†์œผ๋ฉด, ERROR!๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค. 
            catch(IndexOutOfBoundsException e) {
                System.out.println("ERROR!");
            }
        }
    }
}

๐Ÿ‘‰ ์ฐธ๊ณ 

0๊ฐœ์˜ ๋Œ“๊ธ€