1. 하샤드 수
✅ <문제 설명> 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
✅ <문제 풀이>
- String 형태로 바꾸기
- 순회하면서 변수 하나에 각 자릿수 모두 더하기
- 각 자릿수 합이 입력값 x 를 나눴을 때 나눠지는지 확인 (약수 판정)
- 나눠진다면, True 반환 !
def solution(x):
# 18
# i = 0, 1 (index)
ha = 0
for i in range(len(str(x))) :
ha += int(str(x)[i])
if x % ha == 0:
return True
else : return False
✅<나의 풀이 키워드> 문자열(String) , Indexing, 나눗셈 활용
2. 두 정수 사이의 합
✅ <문제 설명> 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
✅ <문제 풀이>
- Input 으로 받은 두 정수 중 어떤 값이 큰 값인지 먼저 판정 (min, max) 내장 함수 사용
- 작은 수 ~ 큰 수 사이의 값 answer 에 누적합 해주기
def solution(a, b):
answer = 0
for i in range(min(a,b), max(a,b)+1) :
answer += i
return answer
✅<나의 풀이 키워드> 내장함수(min, max), 누적합
3. 수박수박수박수...
✅ <문제 설명> 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
✅ <문제 풀이>
- 홀, 짝 문제로 접근
- 홀수일 때 '수' 누적 합
- 짝수일 때 '박' 누적 합
def solution(n):
# n = 3
answer = ''
for i in range(1, n+1) : # 1, 2, 3
if i % 2 != 0:
answer+='수'
else :
answer+='박'
return answer
solution(3)
✅<나의 풀이 키워드> 홀짝, 누적합
반응형
'Programming > Python' 카테고리의 다른 글
[프로그래머스 Python] 가운데 글자 가져오기, 콜라츠 추측, 문자열 내림차순 배치하기 (0) | 2024.07.03 |
---|---|
[프로그래머스 Python] 없는 숫자 더하기, 크기가 작은 부분 문자열 (0) | 2024.07.01 |
[프로그래머스 Python] 자릿수 더하기 (0) | 2024.06.26 |
[python] time (0) | 2023.03.30 |
Package (0) | 2023.03.22 |