백준 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
      • 개발 N
        • 코딩테스트
        • JAVA
        • DB
        • Unity N
      • 강의 N
        • 패스트캠퍼스 0원 챌린지
        • 멋쟁이 사자처럼 유니티 부트캠프 N
      • 게임
        • 리뷰
  • 블로그 메뉴

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

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바