Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- boj
- 영재원
- 4101
- 5086
- 2965
- 2476
- acmicpc
- EOF
- 2605
- BoB 7기
- 10833
- 10995
- text
- 영재교육원
- 정보보호 영재원
- Python
- 2506
- BOB
- 2501
- 11943
- Best of the Best
- 차세대 보안 리더 양성
- 11109
- 1547
- 정보보호 영재교육원
- 차세대 보안 리더 양성 프로그램
- 리뷰
- BoB 후기
- 공주대 정보보호
- 5586
Archives
- Today
- Total
짱해커가 되어보자
boj 2164 본문
문제
N개의 카드 덱이 있으며, N을 맨 바닥으로 1부터 N까지 정렬되어 있다
이 때 마지막 한 장이 남을 때 까지, 맨위에 있는 카드는 제거, 그 밑 카드는 맨 아래로 옮기는걸 반복했을 때 마지막 남은 카드의 번호는 무엇인지 묻는 문제이다
입력
: n(N : 1 ~ 500,000)출력
: <int>
풀이
l, n = [0, 1, 2, 2] + [0] * 499997, int(input())
for i in range(4, n+1):
l[i] = l[i-1] + 2
if(i-1 == l[i-1]): l[i] = 2
print(l[n])
Comments