백준

백준 2164 - Java

으엉어엉 2024. 9. 5. 15:24
728x90

문제

 

 

내 풀이 1 : for문을 이용한 풀이.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;

public class Card2 {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Deque<Integer> d = new ArrayDeque<Integer>();
        int N = Integer.parseInt(br.readLine());

        //N개 입력
        for (int i = 1; i <= N; i++) {
            d.addFirst(i);
        }
        //1개남을때까지 반복
        for(int i = 1; i < N; i++){
            d.pollLast();
            d.addFirst(d.pollLast());
        }
        System.out.println(d.poll());
    }
}

 

내 풀이 2 : While문을 이용한 풀이.

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class Card2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        Deque<Integer> d = new ArrayDeque<Integer>();

        // 1부터 N까지 카드를 덱에 추가
        for (int i = 1; i <= N; i++) {
            d.addLast(i);
        }

        // 카드가 한 장 남을 때까지 반복
        while (d.size() > 1) {
            d.poll();               // 제일 위의 카드를 버림
            d.addLast(d.poll());    // 그 다음 카드를 제일 아래로 이동
        }

        // 마지막 남은 카드 출력
        System.out.println(d.peek());
    }
}
728x90

'백준' 카테고리의 다른 글

백준 28279 - Java  (0) 2024.09.07
백준 11866 - Java  (0) 2024.09.07
백준 18258 - Java  (1) 2024.09.05
백준 12789 - Java  (0) 2024.09.04
백준 4949 - Java  (0) 2024.09.04