▷ 코드카타

[내일배움캠프 _ QA/QC 5기] 17일차 _ 코드카타 21~22문항

qc-standard 2026. 3. 31. 11:11

⊙ 코드카타

21) 문제 : 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

생각 과정 :

● 숫자를 쪼개고 → 누적 합 → 나머지가 0이면 Ture:하샤드수 / 0이 아니면 False:하샤드수가 아님 으로 출력 
def solution(x):
    harshad = 0
    for h in str(x):
      harshad += int(h)

    if x % harshad == 0:
        return rue
    else:
        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 = 0
    for i in range(a, b+1):
        answer += i
    return answer


print(solution(3,5))
print(solution(3,3))
print(solution(5,3))
12
3
0
→ 역시 a>b 일때 결과값이 안나옴



● a > b 일 때, if 조건 제시
# 22
def solution(a,b):

    if a > b:
        a, b = b,a
        #a > b 일 때 a, b = b, a라는 조건 제시


    answer = 0
    for i in range(a, b + 1):
        answer += i
    return 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 = 0
    for i in range(min(a, b), max(a, b) + 1):  #min,max = a b 중 작은/큰 걸 골라 써
        answer += i
    return answer


print(solution(3,5))
print(solution(3,3))
print(solution(5,3))
12
3
12