def lotto_start(): mylist1 = set() mylist2 = set() mylist3 = set() mylist4 = set() mylist5 = set() while len(mylist1) < 6: mylist1.add(rnd.randint(1, 45)) mylist2.add(rnd.randint(1, 45)) mylist3.add(rnd.randint(1, 45)) mylist4.add(rnd.randint(1, 45)) mylist5.add(rnd.randint(1, 45)) sorted_mylist = [bubble_sort(list(mylist1)), bubble_sort(list(mylist2)), bubble_sort(list(mylist3)), bubble_sort(list(mylist4)), bubble_sort(list(mylist5))] print("내 로또 번호") for i in range(len(sorted_mylist)): print("{}".format(sorted_mylist[i])) sorted_lotto = bubble_sort(list(lotto_generator())) # sorted_lotto.append(rnd.randint(1,46)) bonus = rnd.randint(1, 45) while sorted_lotto.count(bonus) == 1: bonus = rnd.randint(1, 45) print("로또 번호 : {}".format(sorted_lotto)) # 정렬된 결과 print("보너스 번호 : {}".format(bonus)) cnt = [] # print(sorted_mylist) for i in range(len(sorted_mylist)): bon = 0 cnt_num = 0 for j in range(len(mylist1)-1): if sorted_mylist[i][j] == sorted_lotto[j]: cnt_num = cnt_num + 1 if sorted_mylist[i][j] == bonus: bon = 1 cnt.append(cnt_num) print("복권 {} : {} + {}개 일치".format(i+1, cnt_num, bon)) if cnt_num == 6: print("1등입니다 축하합니다") elif cnt_num == 5: if bon == 1: print("2등입니다.") else: print("3등입니다.") elif cnt_num == 4: print("4등입니다.") elif cnt_num == 3: print("5등입니다.") else: print("꽝입니다.")
def binary_search_index(target): print("binary_search_index\nindex,value") setlist = set() # rnd.seed(2) while len(setlist) < 21: setlist.add(rnd.randint(1, 200)) print("정렬전\n{}".format(setlist)) left = 0 right = len(setlist) - 1 cnt = 0 sorted_list = bubble_sort(list(setlist)) print("정렬후\n{}".format(sorted_list)) while True: mid = (left + right) // 2 print( "left : {} {}\t\tmid : {:2} {}\t\tright : {} {}\t\t target : {}" .format(left, sorted_list[left], mid, sorted_list[mid], right, sorted_list[right], target)) if target > sorted_list[mid]: left = mid + 1 cnt = cnt + 1 elif target < sorted_list[mid]: right = mid - 1 cnt = cnt + 1 else: print("검색 : {}\n위치 : {}번".format(cnt, mid)) break if left >= right: print("{}번 검색했지만 해당하는 수는 없습니다.".format(cnt)) break
def lotto_start(a, b, c, d, e, f): mylist = [a, b, c, d, e, f] sorted_mylist = bubble_sort(mylist) print("내 로또 번호 : {}".format(sorted_mylist)) sorted_lotto = bubble_sort(list(lotto_generator())) # sorted_lotto.append(rnd.randint(1,46)) bonus = rnd.randint(1, 45) while sorted_lotto.count(bonus) == 1: bonus = rnd.randint(1, 45) print("로또 번호 : {}".format(sorted_lotto)) # 정렬된 결과 print("보너스 번호 : {}".format(bonus)) cnt = 0 bon = 0 for i in sorted_lotto: for j in mylist: if j == i: cnt = cnt + 1 for i in mylist: if bonus == i: bon = 1 if cnt == 6: print("1등입니다 축하합니다") elif cnt == 5: if bon == 1: print("2등입니다.") else: print("3등입니다.") elif cnt == 4: print("4등입니다.") elif cnt == 3: print("5등입니다.") else: print("꽝입니다.") print("{} {}".format(cnt, bon))
# 로또번호생성기를 작성하고 당첨번호에 따라 순위를 구하는 프로그램 # 5000원치 로또번호를 생성하세요. import random as rnd from chapter04.exam02 import bubble_sort def lotto_generator(): lotto_num = set() while len(lotto_num) < 6: lotto_num.add(rnd.randint(1, 46)) return lotto_num if __name__ == "__main__": rnd.seed(4) sorted_lotto = list(lotto_generator()) print("로또 번호 : {}".format(bubble_sort(sorted_lotto)))
# 로또번호생성기를 작성하고 당첨번호에 따라 순위를 구하는 프로그램 작성 import random as rnd from chapter04.exam02 import bubble_sort def lotto_generator(): rnd.seed(1) lotto_num = set() while len(lotto_num) < 6: lotto_num.add(rnd.randint(1, 46)) return lotto_num if __name__ == "__main__": set_lotto = bubble_sort(list(lotto_generator())) print("로또 번호 : {}".format(set_lotto))
num = [] while len(num) < 20: num.append(rnd.randint(1, 100)) return num def binary_search(binary_num, search_num): left = 0 right = len(binary_num) - 1 while True: mid = (left + right) // 2 if binary_num[mid] == search_num: print("{}를 찾았습니다.".format(search_num)) break elif binary_num[mid] > search_num: right = mid - 1 elif binary_num[mid] < search_num: left = mid + 1 if (right < left): print("{}가 존재하지 않습니다.".format(search_num)) break if __name__ == "__main__": binary_num = bubble_sort(binary_list()) print(binary_num) binary_search(binary_num, 98)