호기심 많은 분석가
[백준 2164] 카드 2 (Python) 본문
def show_result(data) :
if len(data)==1 :
return data
else :
if len(data)%2==0 :
data = data[1::2]
else :
temp = [data[-1]]
temp.extend(data[1::2])
data = temp
return show_result(data)
n = int(input())
arr = [i+1 for i in range(n)]
answer = show_result(arr)
print(answer[0])
- 재귀함수를 사용해서 해결했다
- 두 가지의 경우를 나눠서 규칙을 적용
- 홀수
- 123을 예로, 1을 지우고 2를 뒤에 보내므로 32의 형태를 맞춰줘야함
- 짝수
- 1234를 예로, 위의 규칙을 적용하면 24가 남음
- 홀수
- 두 가지의 경우를 나눠서 규칙을 적용
- 이 과정을 리스트의 길이가 1이 될 때까지 반복해준다.
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[백준 11723] 집합 (Python) (2) | 2021.06.08 |
---|---|
[백준 9012] 괄호 (Python) (0) | 2021.06.04 |
[백준 10816] 숫자 카드 2 (Python) (0) | 2021.06.03 |
[백준 15881] Pen Pineapple Apple Pen (Python) (2) | 2021.06.02 |
[백준 1978] 소수 찾기 (Python) (0) | 2021.06.02 |