백준 2164번: 카드2 [JAVA]

2023. 3. 15. 00:55·개발/코딩테스트

https://www.acmicpc.net/problem/2164

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

  • 풀이

제일 위에 있는 카드를 버리거나, 맨 뒤로 넣기만 하면 되므로 큐를 사용하면 된다.

N까지 숫자가 들어있는 큐를 만들고, 큐의 사이즈가 1이 될 때까지 버리기, 맨 뒤에 넣기를 반복한다.

  • 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		
		// 정수 N 입력
		int N = Integer.parseInt(bf.readLine());
		
		// 큐 생성
		Queue <Integer> que = new ArrayDeque<>();
		for (int i = 1; i<N+1; i++) {
			que.add(i);
		}
		
		while(que.size()>1) { // 카드가 1개 남을 때까지
			que.poll(); // 바닥에 버리기
			que.add(que.poll()); // 맨 뒤에 넣기
		}
		
		// 결과 출력
		System.out.println(que.peek());
	}

}
'개발/코딩테스트' 카테고리의 다른 글
  • 백준 1759번: 암호만들기 [JAVA]
  • 백준 17608번: 막대기 [JAVA]
  • 백준 1158번: 요세푸스 문제 [JAVA]
  • 백준 2839번: 설탕 배달 [파이썬]
로또
로또
  • 로또
    게임 개발 발전소
    로또
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 개발
        • 코딩테스트
        • JAVA
        • DB
        • Unity
      • 강의 N
        • 패스트캠퍼스 0원 챌린지
        • 멋쟁이 사자처럼 유니티 부트캠프 N
      • 게임
        • 리뷰
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    최소신장트리
    수강료0원챌린지
    조합
    설탕배달
    백트래킹
    Java
    오공완
    코딩테스트
    환급챌린지
    직장인자기계발
    백준
    BFS
    직장인인강
    분리집합
    패캠챌린지
    dfs
    그리디
    트리
    자료구조
    C4D
    한번에끝내는프론트엔드개발초격차패키지Online
    부분집합
    패스트캠퍼스
    패캠인강후기
    완전탐색
    그리디알고리즘
    2839
    패스트캠퍼스후기
    3D웹인터랙티브
    그래프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
로또
백준 2164번: 카드2 [JAVA]
상단으로

티스토리툴바