짱해커가 되어보자

boj 2164 본문

프로그래밍_일반/백준

boj 2164

Spadework 2020. 1. 28. 17:59

문제

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])

 

'프로그래밍_일반 > 백준' 카테고리의 다른 글

boj 9012  (0) 2020.01.28
boj 4949  (0) 2020.01.28
boj 2108  (0) 2020.01.28
boj 1978  (0) 2020.01.28
boj 1920  (0) 2020.01.28
Comments