TIL
240624-(P) 33.약수의 개수와 덧셈 / 35.부족한 금액 계산하기 / 36.문자열 다루기 기본
승따리
2024. 6. 24. 14:54
33.약수의 개수와 덧셈
첫번째 작성 했던 코드
def solution(left, right):
for i in range(left,right+1):
answer=0
num_a=0
for n in range(1,i):
if i%n==0:
num_a=num_a+1
else:
num_a=num_a
if num_a%2==0:
answer=answer+n
else:
answer=answer-n
return answer
원하는 결과 안나옴. 아무리 고민해봐도 뭐가 잘못된지 모르겠어서 다시 처음부터 짜봣는데
자꾸 마지막 결과가 right 값으로 나옴. 그래서 chatgpt한테 물어
일단 난 math를 import 안할꺼고 sqrt도 왜 썻는지 모르겠음
그래서 그냥 참고만 하고 다시 작성한게 아래 코드
def solution(left,right):
result=0
for i in range(left,right+1):
divisor_count = 0
for j in range(1,i+1):
if i%j==0:
divisor_count=divisor_count+1 #약수의 개수
else:
divisor_count=divisor_count
if divisor_count%2==0:
result=result+j
else:
result=result-j
return result
성공
35.부족한 금액 계산하기
전체가격이 필요할것이고 count 만큼 돌아야 하니 for 문 사용 해야겠다.
전체가격과 money 크기 비교를 통해 돈이 남는지, 부족한지를 판단해야 되니 if문 써야겠다.
def solution(price, money, count):
total_price = 0
for i in range(1, count + 1):
total_price = total_price + price * i
if total_price > money:
answer = total_price - money
else:
answer = 0
return answer
성공!
36.문자열 다루기 기본
혹시 문자열이 알파벳으로 구성되 있나 숫자로 구성되 있나 확인하는 방법이있을까? 구글링 시전
문자열.isdecimal() - 문자열이 int로 변환 가능하면 True / 아니면 False
문자열.isdigit() - 문자열이 숫자의 형태이면 True / 아니면 False
문자열.isnumeric() - 문자열이 숫자값을 표현하는 형태면 True / 아니면 False
일단 난 isdecimal() 을 썻는데 3개의 정확한 차이가 뭐지.....?
이런차이라고 한다. 인지만 해놓자.
문자열.isalapha() - 문자열이 알파벳이면 True / 다른거 섞여있으면 False
+@
문자열.isalnum() - 문자열이 숫자 알파벳이면 True / 아니면 False
위 지식을 활용해서 첫번째로 코드를 짠결과
def solution(s):
answer = s.isdecimal()
return answer
실패..
아...s의 길이가4와 6인걸 확인을 안했네...?
def solution(s):
answer=s.isdecimal()
if (len(s)==4 or len(s)==6):
return answer
else:
return False
성공!