
하지만 문제는 언제나 있다.

// 못해먹겠다 -> true
결국은 이 결과 값에 도달한다. 따라서 이 복잡한 것을 해결할 수 있게 해주는 동적 배열에 대해서 알아가보자.

동적 배열은 위와 같은 방식으로 설정해주면 되는데, 기존에 쓰던 배열 방식:
String[] name = new String[10];
int[] num = new int[10];
이딴식으로 설정해주면 당연히 안된다. 설정해주는 방법부터 다르기 때문에 잘 살펴보자.
ArrayList<Integer> list = new ArrayList<>();
ArrayList<String> str = new ArrayList<>();
기존에 쓰던 배열 방식에서는 int 라는 표현은 Integer의 원시형(Primitive) 타입이다. ArrayList 라는 방에 들어갈 손님을 설정해줄때는 원시적인 느낌이 아니라 좀더 포멀하게 제대로 차려입은 참조 타입으로 지정해주어야 들어갈 수 있다라고 비유하겠다. 기존 배열 arr 가 3성급 모텔이라면 ArrayList 는 5성급 호텔인것이다. 이렇게 생각하자.
따라서 참조 타입으로 입력해주어야 ArrayList에서 인식을 하고 손님을 체크하고 들여보내 준다.
좀더 자세하게 알아보고 싶으면 위의 링크를 참고해 보자.
list.add(0);
생각보다 간단하다. 설정해준 ArrayList 이름에 .add 만 붙이고 타입에 해당하는 값을 넣어주면 된다.
list.remove(0);
add의 반대인 remove를 list 의 옆에 붙이고 제거하고 싶은 방의 번호를 입력하면 그 방에 지정된 값이 사라진다. 다만 여기서 주의할 점이 있다.

list.remove(0);
list.remove(1);
이렇게 코드를 치면 안된다. 이렇게 되면 A와 C가 없어지게 된다는 말이다.
list.remove(0);
list.remove(0);
이렇게 쳐줘야 A와 B를 변수에서 제거 하는 것이 가능하다.
할말이 더 많이 남아있지만 나머지 설명은 2부에서 이어지도록 하겠다.