문제 : boj21756
배열에 실제로 값을 넣어보고, 문제에서 제시된 방법대로 시뮬레이션을 돌리듯 실제로 동작하도록 구현해보면 쉽게 풀 수 있다. 그냥 배열로 해도 되지만, 이하 코드는 ArrayList를 가지고 해봤다. 이 경우 index값은 0부터 시작되므로 index 기준으로는 짝수번을 제거해야 한다.
처음에 1부터 n까지를 ArrayList에 넣는다. -> ArrayList 하나를 더 만들고 index 번호 기준으로 홀수번호들을 새로 만든 곳에 담는다. -> 기존 ArrayList와 바꿔치기를 한다.
위의 과정을 값이 1개만 남을 때 까지 계속하면 된다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main {
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 1; i <= n; i++) arr.add(i);
while (arr.size() != 1) {
ArrayList<Integer> tmp = new ArrayList<>();
for (int i = 1; i < arr.size(); i+=2) tmp.add(arr.get(i));
arr = tmp;
}
System.out.println(arr.get(0));
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
[자바] 백준 5656 - 비교 연산자 (boj java) (0) | 2022.06.18 |
---|---|
[자바] 백준 5704 - 팬그램 (boj java) (0) | 2022.06.17 |
[자바] 백준 14656 - 조교는 새디스트야!! (boj java) (0) | 2022.06.15 |
[자바] 백준 2028 - 자기복제수 (boj java) (0) | 2022.06.14 |
[자바] 백준 23825 - SASA 모형을 만들어보자 (boj java) (0) | 2022.06.13 |
댓글