본문 바로가기

알고리즘/🥈 실버

백준 2161 카드1 자바 풀이

728x90

난이도 : 실버5

풀이일 : 07064

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

 

2161번: 카드1

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

www.acmicpc.net


링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐


풀이 코드

import java.util.LinkedList;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		scan.close();
		
		LinkedList<Integer> queue = new LinkedList<>();
		
		// 큐에 카드 넣기
		for (int i = 1; i <= N; i++) {
			queue.add(i);
		}
		
		// 문제 조건 따라 요소 출력
		while (queue.size() > 1) {
			System.out.print(queue.pollFirst() + " ");
			queue.add(queue.pollFirst());
		}
		System.out.println(queue.pollFirst());
	}
}
  • LinkedList.add : 링크드 리스트에 해당 요소 추가
  • LinkedList.size() : 링크드 리스트 길이 구하기
  • LinkedList.pollFirst() : 링크드 리스트 맨 앞 요소 반환, 제거

느낀점

처음에는 while 조건으로 1 대신 0을 넣었더니 에러가 발생해서 수정하고 마지막에 출력을 따로 적었다.

오늘은 파이썬 문제 풀이를 실패해서 기쁘지 않지만, 자바를 실버 풀고 있는걸로 위로삼아야지