Solved.ac Class2+
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
ArrayList<Integer> intArray = new ArrayList<>();
for (int i = 0; i < n; i++) {
intArray.add(i + 1);
}
int calculate = calculate(intArray);
System.out.println(calculate);
}
private static int calculate(ArrayList<Integer> list) {
list.remove(0);
if (list.size() == 1) {
return list.get(0);
}
int temp = list.remove(0);
list.add(temp);
return calculate(list);
}
}
시간초과 엔딩
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Queue<Integer> intArray = new ArrayDeque<>();
for (int i = 0; i < n; i++) {
intArray.add(i + 1);
}
int calculate = calculate(intArray);
System.out.println(calculate);
}
private static int calculate(Queue<Integer> list) {
list.remove();
if (list.size() == 1) {
return list.remove();
}
int temp = list.remove();
list.add(temp);
return calculate(list);
}
}
시간이 꽤 걸리네? -> 따라서 Queue 구조로 변경했다
NoSuchElementException...?
특정 상황에 Queue가 0이되는 상황이 발생하는것 같다
private static int calculate(Queue<Integer> list) {
if (list.size() == 1) {
return list.remove();
}
list.remove();
int temp = list.remove();
list.add(temp);
return calculate(list);
}
순서를 바꿨다. 이러면 한번 더 탐색하지만 그정도야 뭐
성공