백준/20001 - 25000
[백준] 21756번 : 지우개(JAVA)
lms0806
2021. 7. 25. 20:07
728x90
반응형
https://www.acmicpc.net/problem/21756
21756번: 지우개
$N$개의 칸에 $1$ 부터 $N$ 까지의 수들이 왼쪽부터 순서대로 저장되어 있다. 또, 각 칸은 왼쪽부터 $1$ 부터 $N$까지 순서대로 번호가 붙어 있다. 즉, 처음에는 각 칸의 번호와 각 칸에 저장된 수가
www.acmicpc.net
풀이
배열보다는 ArrayList를 이용하면 앞으로 이동시킬 필요가 없다.
for문으로 i번째를 지우게 되면 자동적으로 1칸씩 앞으로 이동해 홀수번에 있는 숫자를 지울 수 있다.
이를 ArrayList의 size가 2보다 작을때까지 반복하면 된다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> arr = new ArrayList<>();
int size = Integer.parseInt(br.readLine());
for(int i = 1; i <= size; i++) {
arr.add(i);
}
while(arr.size() >= 2) {
for(int i = 0; i < arr.size(); i++) {
arr.remove(i);
}
}
System.out.print(arr.get(0));
}
}
728x90
반응형