일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Flutter
- 자바 스프링
- SWEA
- Java
- 백준
- spring
- 페이코 추천인코드
- C언어
- 스프링
- programmers
- php 프로그래밍
- 플러터
- 페이코 추천인
- php 프로그래밍 입문
- 페이코 초대코드
- 최단 경로
- JAVA SPRING
- php 프로그래밍 입문 예제
- 자바
- php 프로그래밍 입문 3판
- 페이코 친구코드
- php 프로그래밍 입문 연습문제
- C
- 파이썬
- 배열
- php
- php 프로그래밍 입문 문제풀이
- 한정 분기
- 플러터 개발환경 설정
- php 프로그래밍 입문 솔루션
Archives
- Today
- Total
04-15 20:49
ImJay
[BOJ/Java] 2164. 카드 2 본문
반응형
[BOJ/Java] 2164. 카드 2
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
풀이
package edu.ssafy.im.BOJ.Silver.S4.No2164;
import java.io.*;
import java.util.ArrayDeque;
import java.util.Queue;
public class Main {
int n; // 카드의 개수를 저장할 변수
public static void main(String[] args) throws IOException {
new Main().io();
}
private void io() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
n = Integer.parseInt(br.readLine()); // 카드의 개수 입력 받음
int ans = sol(); // 마지막에 남는 카드를 구하는 메서드 호출
sb.append(ans); // 결과를 StringBuilder에 추가
bw.write(sb.toString()); // 결과 출력
bw.flush();
bw.close();
}
private int sol() {
Queue<Integer> queue = new ArrayDeque<>(); // 카드를 담을 큐 생성
// 카드 번호를 큐에 넣음
for (int i = 1; i <= n; i++) {
queue.offer(i);
}
// 카드가 한 장 남을 때까지 반복
while(queue.size() != 1) {
queue.poll(); // 제일 위에 있는 카드를 버림
queue.offer(queue.poll()); // 제일 위에 있는 카드를 제일 아래에 옮김
}
return queue.poll(); // 마지막에 남은 카드 번호 반환
}
}
반응형
'알고리즘 > BOJ - Java' 카테고리의 다른 글
[BOJ/Java] 1194. 달이 차오른다, 가자. (1) | 2024.02.05 |
---|---|
[BOJ/Java] 16987. 계란으로 계란치기 (0) | 2024.02.04 |
[BOJ/Java] 6987. 월드컵 (0) | 2024.02.04 |
[BOJ/Java] 2493. 탑 (0) | 2024.02.04 |
[BOJ/Java] 16943. 숫자 재배치 (0) | 2024.02.04 |
Comments