
리스트로 문제 해결해보기

import java.util.ArrayList;
import java.util.List;
public class BJ1158_요세푸스 {
public List<Integer> solution (int N, int K) {
List<Integer> numbers = new ArrayList<>();
List<Integer> result = new ArrayList<>();
for(int i=1; i<N+1; i++) {
numbers.add(i);
}
// N개의 요소가 제거될 때까지 이므로 N번 반복
for (int i=0; i<N; i++) {
int idx = K%numbers.size();
result.add(numbers.remove(idx)); // 제거된 요소를 리스트에 추가
for(int j=0; j<idx; j++) {
numbers.add(numbers.remove(0)); // 제거된 요소 이전의 요소들을 뒤로 이동
}
}
return result;
}
public static void main(String[] args) {
BJ1158_요세푸스 ex = new BJ1158_요세푸스();
System.out.println(ex.solution(7,2));
}
}
refer to
메가스터디아이티 이광호쌤
반응형
'IT > Algorithm | Coding Test' 카테고리의 다른 글
| [백준 11720] [Java] 숫자의 합 (0) | 2025.01.14 |
|---|---|
| 배열, 리스트 (Java) (0) | 2025.01.14 |
| [백준 2164] [Java] 카드2 (0) | 2025.01.08 |
| 스택 Stack, 큐 Queue, 덱 Deque (1) | 2025.01.05 |
| Stream vs IntStream (0) | 2025.01.04 |