지난주에 본 파이썬 코딩테스트 코드 리뷰를 하였다.
서로가 작성한 코드가 달라 서로에게 도움이 되는 시간이였다.
<팀원이 작성한 코드>
#문제 3 (15점)
def calc_tips(totalPrice, tipPer=10):
calTip = totalPrice * tipPer / 100
if calTip > int(calTip):
calTip = int(calTip)+1
print(f'지불할 팁은 {int(calTip)}달러')
print("3번 답안")
print(calc_tips(50))
#문제 4 (15점)
def search_target(sentence, target):
wordIdx = []
word = sentence.split()
for i, val in enumerate(sentence):
if sentence[i:i+4] == target:
wordIdx.append(i)
print(f'{len(wordIdx)},{wordIdx}')
print("4번 답안")
sentence = "Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex."
target = "than"
print(search_target(sentence, target))
# 문제 5 (25점)
def div_ab(a,b):
n = 0
if type(a) == int and type(b) == int:
n += 1
if a-b <= a:
leftab = a-b
else:
print(div_ab(a-b, a))
else:
print('정수만 입력해주세요')
print(f'{a}나누기{b}의 결과: 몫:{n}, 나머지:{leftab}')
print("5번 답안")
a = 3
b = 2
print(div_ab(a, b))
<내가 작성한 코드>
# 문제 3 (15점)
import math
def calc_tips(total, tip_rate=0.1):
tip = total * tip_rate
tip = math.ceil(tip)
total += tip
print(f'팁은 {tip}달러, 총 금액은 {total}달러입니다.')
print("3번 답안")
print(calc_tips(73,0.18))
# 문제 4 (15점)
def search_target(sentence, target):
count = sentence.count(target)
if count == 0:
return "Not found"
else:
index_list = []
start = 0
while start < len(sentence):
index = sentence.find(target, start)
if index == -1:
break
index_list.append(index)
start = index + 1
return count, index_list
print("4번 답안")
sentence = "Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex."
target = "than"
print(search_target(sentence, target))
# 문제 5 (25점)#
def div_ab(a,b):
if not (isinstance(a, int) and isinstance(b, int)):
raise ValueError("Both inputs should be integers.")
quotient = 0
while a >= b:
a -= b
quotient += 1
remainder = a
print(f'3나누기 2의 결과 : 몫{quotient},나머지{remainder}')
print("5번 답안")
a = 3
b = 2
print(div_ab(a, b))