ArrayList(2)
-
[Java] ArrayList의 capacity, size, 그리고 add(int index, E element)
문제 알고리즘 문제를 풀던 중 2차원 배열 형태를 ArrayList 형태로 구현하려고 했다. 코드는 다음과 같다. N = Integer.parseInt(br.readLine()); tree = new ArrayList(N + 1); ArrayList list = new ArrayList(N + 1); list.add(child, weight); tree.add(parent, list); 언뜻 봐서는 정상적으로 동작할 것 같지만 list.add() 에서 IndexOutOfBoundsException이 발생한다. 왜 예외가 발생하는 것일까? capacity와 size ArrayList는 내부적으로 capacity와 size라는 변수를 두고 있닫. 용도는 다음과 같다. capacity - ArrayList에 ..
2023.03.16 -
[Baekjoon] 1158번: 요세푸스 문제 - Java
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 방법 1. Queue 먼저 모든 사람을 큐에 넣고 K - 1만큼 빼고 다시 큐에 넣는다. 그 후에 빼는 사람은 K 번째가 되므로 큐가 빌 때까지 이 과정을 반복하는 식으로 해결했다. 시간 복잡도는 O(N * K) 이다. while (!queue.isEmpty()) { IntStream.rangeClosed(1, K - 1).forEach(idx -> queue.add(queue.remove())); ans.add(queue.remove()); } 풀이 방법 2. ArrayList 지..
2023.02.21