문제 출처 : https://www.acmicpc.net/problem/11727
내 풀이
n = int(input())
answer = 1
for i in range(1, n):
if i % 2 == 1:
answer = (answer * 2) + 1
else:
answer = (answer * 2) - 1
print(answer % 10007)
설명
잘 생각하면 각 항마다 규칙성이 있을 것 같았다.
그렇게 찾아본 결과.
다음 항으로 넘어갈 때, (이전 항) * 2 + ( + 1 or - 1)이라는 것을 알았다.
좀 더 정확히는 i가 홀 수일때는 (answer * 2) + 1, 짝 수일때는 (answer * 2) - 1
라는 규칙성이 있었고 이 후 구현은 간단했다.
'코딩테스트' 카테고리의 다른 글
[백준][파이썬]1620번: 나는야 포켓몬 마스터 이다솜 (2) | 2021.06.01 |
---|---|
[백준][파이썬]18352번: 특정 거리의 도시 찾기 (0) | 2021.05.18 |
[백준][파이썬]14501번: 퇴사 (0) | 2021.05.13 |
[백준][파이썬]9625번: BABBA (0) | 2021.05.13 |
[백준][파이썬]1764번: 듣보잡 (0) | 2021.04.15 |