⊙ 코드카타
21) 문제 : 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
생각 과정 :
● 숫자를 쪼개고 → 누적 합 → 나머지가 0이면 Ture:하샤드수 / 0이 아니면 False:하샤드수가 아님 으로 출력
def solution(x):harshad = 0for h in str(x):harshad += int(h)
if x % harshad == 0:return rueelse:return "false"
print(solution(10))print(solution(12))print(solution(11))print(solution(13))true
true
false
false→ 읭??? 뭐지? 한번에 코드 실행도 되고 정답이기까지 하네????
22) 문제 : 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
생각 과정 :
● range로 나열? → 누적합
근데!! a > b 일 때, range 안되는데?
일단 해본다
def solution(a,b):answer = 0for i in range(a, b+1):answer += ireturn answer
print(solution(3,5))print(solution(3,3))print(solution(5,3))12
3
0→ 역시 a>b 일때 결과값이 안나옴
● a > b 일 때, if 조건 제시
# 22def solution(a,b):
if a > b:a, b = b,a#a > b 일 때 a, b = b, a라는 조건 제시
answer = 0for i in range(a, b + 1):answer += ireturn answer
print(solution(3,5))print(solution(3,3))print(solution(5,3))12
3
12
● a > b 일 때, min max 설정
# 22
def solution(a,b):answer = 0for i in range(min(a, b), max(a, b) + 1): #min,max = a b 중 작은/큰 걸 골라 써answer += ireturn answer
print(solution(3,5))print(solution(3,3))print(solution(5,3))12
3
12
'▷ 코드카타' 카테고리의 다른 글
| [내일배움캠프 _ QA/QC 5기] 22일차 _ 코드카타 25문항 (0) | 2026.04.07 |
|---|---|
| [내일배움캠프 _ QA/QC 5기] 21일차 _ 코드카타 23~24문항 (1) | 2026.04.06 |
| [내일배움캠프 _ QA/QC 5기] 16일차 _ 코드카타 17~20문항 (0) | 2026.03.30 |
| [내일배움캠프 _ QA/QC 5기] 15일차 _ 코드카타 15~16문항 (0) | 2026.03.27 |
| [내일배움캠프 _ QA/QC 5기] 14일차 _ (90%이해) 코드카타 13~14문항 (0) | 2026.03.26 |