리스트

    [백준] 1158 - 요세푸스 문제 (자바/Java)

    문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다. 풀이 1 링크드 리스트를 큐처럼 활용하여 풀었다. cnt는 1부..

    [자료구조] Array, ArrayList, LinkedList

    [자료구조] Array, ArrayList, LinkedList

    목차 Array & ArrayList 배열 같은 종류의 데이터를 저장하기 위한 자료구조 index로 배열의 요소 참조 가능 크기가 고정 → overflow 위험 직관적으로 간단함 추가/제거 시 shift 필요 삽입 public void add(int index, E x) { if (this.numItems >= item.length || index this.numItems) { // 에러 처리 } else { for (int i = this.numItems - 1; i >= index; i--) { item[i + 1] = item[i]; // index에 값을 삽입하기 위해 오른쪽으로 한 칸씩 shift } item[index] = x; this.numItems++; } } ..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]