목차
728x90
반응형
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
입출력 예
문제 풀이
- 반복문을 통해 i의 값을 left부터 right까지 반복
- i의 약수의 개수가 홀수이면 제곱근을 가진다는 것을 이용해 조건문 생성
- 약수의 개수가 홀수이면, answer에서 뺌
- 약수의 개수가 짝수이면, answer에 더함
정답 코드
def solution(left, right):
answer = 0
for i in range(left, right+1):
if int(i**0.5) == i**0.5: # 홀수이면 제곱근을 가짐
answer -= i
else:
answer += i
return answer
처음 작성한 코드
def solution(left, right):
answer = 0
for i in range(left, right+1):
if len(i%1==0)%2 == 0:
answer += i
else:
answer -= i
return answer
- 조건문으로 값을 1로 나누었을 때 나머지가 0인 값(약수)의 개수를 2로 나누었을 때 나머지가 0인 값(짝수)을 구함
- 조건에 맞는 값을 answer에 더함
- 조건에 맞지 않는 값(약수의 개수가 홀수 일 때)을 answer에서 뺌
- if문에서 Type오류 발생
728x90
반응형
'Python > Coding Test' 카테고리의 다른 글
[Coding Test] 정수 내림차순으로 배치하기 (0) | 2023.05.16 |
---|---|
[Coding Test] 부족한 금액 계산하기 (0) | 2023.05.10 |
[Coding Test] 직사각형 별찍기 (0) | 2023.05.09 |
[Coding Test] 가운데 글자 가져오기 (0) | 2023.05.08 |
[Coding Test] 핸드폰 번호 가리기 (1) | 2023.05.08 |