백준(Backjoon) 2164, 카드2
2021. 6. 25. 21:50ㆍCodingTest
문제풀이
자료구조중 큐(Queue) 구조를 이용하여 문제를 해결한다. 첫번째는 큐에서 제일 앞의 수를 제거하고 그다음 2번째인 수를 제거하고 제거한 수를 다시 추가한다. 이러한 과정을 큐 구조에서 1개가 될때까지 계속 반복한다. 최종적으로 남은 1개의 카드의 숫자를 반환하고 종료한다.
소스풀이
public class Main {
public static int solution(Queue<Integer> q)
{
while(q.size()!=1) // queue 구조에서 1개가 남을때까지 반복
{
q.poll(); // 카드한장을 버림
q.add(q.poll()); // 제일 위의 카드를 제일 뒤로 보냄
}
return q.peek(); // queue 구조의 마지막 1개 남은 카드의 수를 반환
}
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Queue<Integer> q = new LinkedList<Integer>();
for(int i=1;i<=n;i++)
{
q.add(i);
}
System.out.println(solution(q));
}
}
'CodingTest' 카테고리의 다른 글
백준(Backjoon) 10798, 세로읽기 (0) | 2021.06.30 |
---|---|
백준(Backjoon) 10816, 숫자 카드 2 (0) | 2021.06.28 |
백준(Backjoon) 10866, 덱 (0) | 2021.06.25 |
백준(Backjoon) 1966, 프린터 큐 (0) | 2021.06.25 |
백준(Backjoon) 1212, 8진수 2진수 (0) | 2021.06.24 |