35번. 부족한 금액 계산하기
새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.
단, 금액이 부족하지 않으면 0을 return 하세요.
def solution(price, money, count):
answer = sum(price * n for n in range(1, count + 1)) - money
return max(answer, 0)
리스트 컴프리헨션으로 금액이 부족할 경우(추가로 필요한 금액이 있는 경우)를 계산하고, 최종적으로 그 금액이 음수(보유한 money가 더 많은 경우)인 경우 0을 반환할 수 있도록 max를 사용했다.
36번. 문자열 다루기 기본
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
def solution(s):
return (len(s) == 4 or len(s) == 6) and s.isnumeric()
혹은 더 4,6 판단하는 걸 더 간단하게 in []을 사용하여 아래와 같이 작성할 수 있다.
def solution(s):
return len(s) in [4,6] and s.isnumeric()
isnumeric() : 문자열이 숫자로만 구성되어있는지 확인하는 메서드
isalpha() : 문자열이 알파벳 문자로만 구성되어있는지 확인하는 메서드. 숫자나 특수문자 등 알파벳 이외의 문자가 포함되어 있을 경우 False를 반환함.
isalnum() : 문자열이 알파벳과 숫자로만 이루어져있는지 확인하는 메서드.
공백 및 특수문자가 포함되면 False를 반환
isdigit() : 문자열이 정수 숫자로만 이루어져있는지 확인하는 메서드. isnumeric()과 유사하나, isdigit()은 유니코드 숫자는 포함하지 않는다.
isspace() : 문자열이 공백으로만 이루어져 있는지 확인하는 메서드.
istitle() : 문자열의 각 단어의 첫 문자가 대문자인지 확인하는 메서드.
isupper() : 문자열이 모두 대문자인지 확인하는 메서드
islower() : 문자열이 모두 소문자인지 확인하는 메서드