티스토리 뷰
[가장 좋아하는 수]
철수는 4, 7 로만 이루어진 숫자를 좋아한다.
4, 7로만 이루어진 숫자중에 n번째 작은 숫자들까지 구하라.
example 1
input:
2
output:
[4, 7]
example 2
input:
4
output:
[4, 7, 44, 47]
비트연산자 이용한 방법 (빠르다)
def get_fav(n):
repeat = 1
cur_size = 0
size_prev = cur_size
while True:
cur_size += (2**repeat)
if n <= cur_size:
diff = n - size_prev
break
repeat += 1
size_prev = cur_size
base = bin(int("1" + "0" * repeat, 2) + diff - 1)
return int(base[3:].replace("0", "4").replace("1", "7"))
def get_favs(n):
nums = list()
for i in range(1, n + 1):
nums.append(get_fav(i))
return nums
print(get_favs(int(input())))
순열 조합 이용한 방법(느리다)
def is_order(nums):
size = len(nums) - 1
result = 0
for num in nums:
if int(num) != 4 and int(num) != 7:
return 0
result += (10**size) * num
size -= 1
return result
def get_fav(max):
fav = list()
i = 1
while True:
permu = itertools.product(range(10), repeat=i)
for nums in permu:
num = is_order(nums)
if num:
fav.append(num)
if len(fav) >= max:
return fav
i += 1
return list()
print(get_fav(int(input())))
'python lecture > algorism' 카테고리의 다른 글
[edu] 단어의 개수 구하기 (0) | 2018.11.21 |
---|---|
[edu] 수 찾기 (0) | 2018.11.21 |
[edu] Seasons (0) | 2018.11.06 |
[edu] Isomers (0) | 2018.11.04 |
[edu] Applied chemistry (0) | 2018.11.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- pycrypto
- 파이썬 강좌
- 이미지 비교
- django
- 문과 코딩
- wsgi
- 파이썬 입문
- gitlab
- 장고 플러스친구 자동응답
- 엑셀 비교
- virtualenv
- Tistory
- gitignore
- 파이썬 독학
- 파이썬
- django chatbot
- 면접답변
- 모바일 테마 적용
- PuTTYGen
- Python
- 문서 비교
- 플러스친구 자동응답
- admin.py
- 장고 카톡 자동응답
- 파이썬 프로그래밍
- 면접정답
- 장고
- chatbot
- GIT
- 모바일 스킨 적용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함