본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 2164번 카드2 python / 파이썬

by seohmoon 2022. 3. 21.

이런 식으로 홀수가 다 없어지고, 짝수만 남길래

N+1개의 리스트를 만들어서 숫자를 하나씩 넣어주고, 거기서 홀수 인덱스 제거해주는 함수를 만들어서

리스트의 개수가 2개가 될 때까지 반복해줬다.

 

이렇게 해주면 N이 짝수일 때는 되지만 홀수일 때는 안된다. 

홀수일때를 생각해서 함수를 정의할 때

우선 0번째 인덱스에 0을 먼저 담아준 다음

N이 홀수이면 1번째 인덱스에 제일 마지 막번째 수를 담아주고

나는 파이썬으로 했으니까 [-1] 번째!

def mix(x):
    global arr
    newarr = [0]
    if len(x) % 2 == 0:
        newarr.append(arr[-1])
    for i in range(1, len(x)):
        if i % 2 == 0:
            newarr.append(arr[i])
    return(newarr)

N = int(input())
arr = []
for i in range(N+1):
    arr.append(i)

while len(arr) > 2:
    arr = mix(arr)

if len(arr) == 2:
        print(arr[1])

댓글