๐ฆ 4์ 7
1. ๋ฌธ์ ๋งํฌ
2. ์ฝ๋
Python3
31120kb
40ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
K = int(input())
# order๋ฒ์งธ ์์ ์๋ฆฟ์๋ฅผ ๊ตฌํ๋ค
def get_digit(order):
# assert order >= 1
n = 0
k = 1
while n <= order:
n += 2 ** k
k += 1
return k - 1
def get_number(order):
digit = get_digit(order)
# ์ด ์๋ฆฟ์์์ ๋์ค๋ ๊ฒฝ์ฐ์ ์ ์ค ๋ช๋ฒ์งธ ์์น์ธ์ง ๊ตฌํจ
count = order
n = 1
while n < digit:
count -= 2 ** n
n += 1
answer = []
n = 1
while n <= digit:
# ๋๋จธ์ง๊ฐ 0์ด๋ฉด ์ด ์๋ฆฌ๋ 4
# ๋๋จธ์ง๊ฐ 1์ด๋ฉด ์ด ์๋ฆฌ๋ 7
rem = count % 2
if rem:
answer.append("7")
else:
answer.append("4")
count = count // 2
# print(answer)
n += 1
answer.reverse()
return ''.join(answer)
print(get_number(K - 1))
3. ํด์ค
ํด์ค
k ๋ฒ์งธ ์์ ์๋ฆฟ์ ๊ฐฏ์ digit๋ฅผ ๊ตฌํ๋ค
k ๋ฒ์งธ ์ ์๋ฆฟ์์์ ๋ํ๋๋ ํจํด์ 2^digit ๊ฐ ์์ ์ด์ฉํ๋ค
n ๋ฒ์งธ ์๋ฆฟ์์ ์ซ์๋ 2๋ก ๋๋ ๋๋จธ์ง๊ฐ 0์ด๋ฉด 4, 1์ด๋ฉด 7 ๋ก ์ง์
This post is licensed under CC BY 4.0 by the author.