๐ก ์กฐ๊ฑด
- ์ง๊ฒ๋ค๋ฆฌ๋ ๋น์๋จ๊ฐ ์๋ ๋ฐฉํฅ์์๋ถํฐ ๋ฐ๋ ๋ฐฉํฅ๊น์ง ์ฐจ๋ก๋ก 1๋ฒ, 2๋ฒ, ..., N๋ฒ์ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ๋น์๋จ๋ 1๋ฒ ์ง๊ฒ๋ค๋ฆฌ ์์ ์ฌ๋ผ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ ๋ ๊ฐ์ง ๊ท์น์ ์งํค๋ฉฐ ์ง๊ฒ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๊ณ ํ๋ค.
- 1 โค X โค N ์ธ ์์์ ์ ์ X์ ๋ํด, ํ์ฌ ์๋ ์ง๊ฒ๋ค๋ฆฌ์ ๋ฒํธ๋ฅผ i๋ฒ์ด๋ผ๊ณ ํ ๋ i+X๋ฒ ์ง๊ฒ๋ค๋ฆฌ๋ก ๋ธ ์ ์๋ค.
- N๋ฒ์งธ ์ง๊ฒ๋ค๋ฆฌ๋ฅผ ์ง๋์ณ์ ์ ๋๊ณ , ์ ํํ ๋์ฐฉํด์ผ ํ๋ค
- ์ฒซ ๋ฒ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ์ T๊ฐ ์ฃผ์ด์ง๋ค. (1 โค T โค 1000)
- ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ง๊ฒ๋ค๋ฆฌ์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 109)
- ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ๋ํด, ํ ์ค์ ํ๋์ฉ ๊ท์น์ ๋ง์กฑํ๋ฉด์ ์ง๊ฒ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ 109+7๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
- ์ํ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin
def solve(x):
mod = 1000000007
a = 2
b = x
ret = 1
while b:
if b % 2 == 1:
ret *= a
ret %= mod
a *= a
a %= mod
b //= 2
return ret
for _ in range(int(stdin.readline())):
test_data = int(stdin.readline())
if 0 < test_data < 2:
print(1)
else:
x = test_data - 2
print(solve(x))
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
1
4
์คํ๊ฒฐ๊ณผ
4
โจ๏ธ ๋ฌธ์ ํ์ด
- ๋ถํ ์ ๋ณต์ ํตํ ๊ฑฐ๋ญ์ ๊ณฑ ๋ฌธ์ ์ด๋ค. ์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- pow ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.