본문 바로가기
백준/20001 - 25000

[백준] 21756번 : 지우개(JAVA)

by lms0806 2021. 7. 25.
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
반응형

댓글