해당 글은 항해99 클럽 코딩테스트 스터디에서 진행된 16일차(20241112) 비기너 문제에 대한 TIL(Today I Learned) 내용입니다.
문제 출처) https://www.acmicpc.net/problem/2161
문제해결에 활용한 핵심포인트!
1. 가변배열을 위해 ArrayList를 활용하였다.
- 나의 풀이) List와 ArrayList 활용
- List arrList = new ArrayList<>();
- 다른 방식) Queue와 LinkedList, 그리고 poll() 활용
- Queue arrList = new LinkedList<>();
- LinkedList는 Queue 인터페이스를 구현하는 것
- poll() 메서드를 사용하면 remove(0)보다 효율적으로 첫 번째 요소를 제거 가능
2. "배열이 비어질 때까지(배열안에 원소가 존재할 때까지)"에 대한 표현방식
- 나의 풀이) arrList.size > 0
- 다른 방식) !arrList.isEmpty()
3. 요소에 대한 삭제 및 추가할 때 사용한 방법
-
방법1) add, remove, 인덱스의 활용
- arrList.add(arrList.remove(0));
- 리스트에 포함된 내장함수인 add와 remove를 동시에 활용하여,
특정 인덱스에 해당하는 값을 추가와 제거를 동시에 하였다.
(arrList 맨앞에 있던 숫자를 맨 나중 순서로 하기위해)
-
방법2) poll() Queue 내장 함수 활용
- 참고) Queue 메서드
- offer() / add()
- poll() / remove()
- peek() / element()
문제 풀이 외 설정시 주의사항