PS/BOJ
[백준] 2164.cpp : 카드2
bconfiden2
2020. 5. 10. 22:45
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리
www.acmicpc.net
1. 짝수일 경우에는 2 4 6 그대로 남기 때문에 n / 2의 결과에서 2배만을 곱해주면 된다.
2. 홀수일 경우에는 4 6 2 / 4 6 8 2 / 4 6 8 10 2 등과 같이 2가 맨 끝으로 가기 때문에, n/2 의 결과에 2배를 곱해주고 2를 더한 값이 만약 맨 끝이
라면 2를 넘겨주고 아닐 경우 그대로 넘겨준다.
[Points]
1. 자료구조를 사용해야 할 것 같았는데 생각보다 간단(?)한 규칙에 의해 풀린다.
[More]
1. 다른 분들 중에도 신선한 아이디어가 많아 보인다 잘 이해해보자