728x90
옷가게 할인 받기
풀이
def solution(price):
if 500000 <= price:
return int(price*0.8)
elif 300000 <= price:
return int(price*0.9)
elif 100000 <= price:
return int(price*0.95)
else:
return price
다른 풀이
def solution(price):
discount_rates = {500000: 0.8, 300000: 0.9, 100000: 0.95, 0: 1}
for discount_price, discount_rate in discount_rates.items():
if price >= discount_price:
return int(price * discount_rate)
딕셔너리를 사용한 방식
문자 반복 출력하기
풀이
def solution(my_string, n):
strli = list(map(lambda x: x*n, my_string))
return ''.join(strli)
my_string을 하나씩 떼서 labmda로 문자열 3개씩 출력해서 리스트로 저장하고 join으로 다시 붙여서 출력하는 방식
다른 풀이
def solution(my_string, n):
return ''.join(i*n for i in my_string)
아 그냥 for문으로 문자 하나씩 접근할 수있구나,,
대문자와 소문자
풀이
def solution(my_string):
return ''.join([i.upper() if i.islower() else i.lower() for i in my_string])
리스트 컴프리헨션에서 else가 필요할 경우 for문보다 앞에 써주어야 한다.
join 문을 익혀두니 편하다.
다른 풀이
def solution(my_string):
return my_string.swapcase()
아놔 swapcase() 함수가 있네
자릿수 더하기
풀이
def solution(n):
return sum([int(i) for i in str(n)])
n을 문자열로 바꿔서 하나씩 접근하여 int로 다시 변환한 후 sum 함수로 합산
728x90