728x90
for 반복문 연습문제
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건
- n은 10,000,000,000이하인 자연수입니다.
입출력 예
n | return |
12345 | [5,4,3,2,1] |
n = '12345'
re = [] # 출력값을 담을 빈 리스트 준비
n_str = str(n) # n값을 문자형으로 변경
for i in n_str :
re.insert(0, int(i)) # 빈 리스트에 0번째 위치에 숫자형 i값을 삽입
print(re)
#과정
['1']
['2', '1']
['3', '2', '1']
['4', '3', '2', '1']
['5', '4', '3', '2', '1']
while 반복문 연습문제
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
입출력 예
N | answer |
123 | 6 |
987 | 24 |
N = 123
ans = 0
while True: # 1.다음 조건이 참일때 계속해라
ans = ans + N % 10 # 2. ans = 0 + N % 10 = 3 / 5. ans = 3 + 12 % 10 = 5 / 8. ans = 5 + 1 % 10 = 6
N = N // 10 # 3. N = 12 / 6. N = 1 / 9. N = 0
if N // 10 == 0: # 4. false / 7. false / 10. true
ans = ans + N % 10 # 11. ans = 6 + 0 % 10 = 6
break # 12. 반복문 끝
print(ans)
종합 연습문제
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
arr | divisor | return |
[5, 9, 7, 10] | 5 | [5, 10] |
[2, 36, 1, 3] | 1 | [1, 2, 3, 36] |
[3,2,6] | 10 | [-1] |
# 오답코드
arr = [3,2,6]
divisor = 10
ret = []
for num in arr :
if num % divisor == 0:
ret.append(num)
ret = sorted(ret)
if len(ret) == 0:
print(-1)
print(ret)
#출력
-1
[]
# 정답
arr = [3,2,6]
divisor = 10
ret = []
for num in arr :
if num % divisor == 0:
ret.append(num)
ret = sorted(ret)
if len(ret) == 0:
ret.append(-1)
print(ret)
728x90
'내일배움캠프 > Python' 카테고리의 다른 글
[Python] 함수 (1) | 2024.12.13 |
---|---|
[Python]포맷팅_ { }, f-string (0) | 2024.12.13 |
[Python]리스트의 슬라이싱, 정렬 (1) | 2024.12.09 |
[Python]함수의 매개변수 (0) | 2024.11.22 |
[Python]map, filter, lambda (0) | 2024.11.22 |