# x만큼 간격이 있는 n개의 숫자
# my_code
def number_generator(x, n):
answer = []
first_x = x
for i in range(n):
answer.append(x)
x += first_x
return answer
# simple_code
def number_generator(x, n):
# 함수를 완성하세요
return [i * x + x for i in range(n)] # 컴프리 핸션
print(number_generator(2, 5))
# 실행결과
# [2, 4, 6, 8, 10]
# simple_code
def solution(arr1, arr2):
# 함수의 파라미터로 배열 1과 2를 받음
answer = arr1
for i in range(len(arr1)):
# 배열 1의 크기까지 반복(행 설정)
for j in range(len(arr1[i])):
# 배열 1 행의 크기까지 반복(열 설정)
answer[i][j] = arr1[i][j] + arr2[i][j]
return answer # 결과 값을 반환
# simple_code
def solution(arr1, arr2):
return [[j+y for j,y in zip(i,x)] for i,x in zip(arr1,arr2)]
#i = [1,2],[2,3]
#j = [3,4],[5,6]
#(컴프리 핸션)
#a, b == zip(i, j)
#zip(i,j) [[1,3],[2,4]],[[2,5],[3,6]]
# 행렬의 덧셈
# my_code
def solution(phone_number):
final_hidden = ' '
hidden = len(phone_number)
final_hidden = "*" * (hidden - 4)
result = final_hidden + phone_number[-4:]
# [-4:] 뒤에서 네 번째 자리까지 표현 ,[1:]앞의 첫번째 자리 제외하고 표현
return result
# simple_code
def hide_numbers(s):
return (len(s) - 4) * '*' + s[-4:]
# 핸드폰 번호 "*"으로 가리기
주어진 진법에서 그 수의 각 자릿수 숫자의 합으로 나누어떨어지는 자연수
# wrong_code
def solution(x):
one_number = x % 10
ten_number = (x % 100) // 10
hundred_number = (x % 1000) // 100
thousond_number = x % 1000 // 1000
if(x >= 1000):
is_hashad = thousond_number + hundred_number + ten_number + one_number
elif(x >= 100):
is_hashad = hundred_number + ten_number + one_number
elif(x >= 10):
is_hashad = ten_number + one_number
else:
is_hashad = one_number
# 자릿수에 따라 하샤드 수 계산 법을 나눔
if(x % is_hashad == 0):
return True
else:
return False
# 정확한지 검사
# my_code
def solution(x):
arr = list(str(x))
sum = 0
for i in range(len(arr)):
sum += int(arr[i])
if(x % sum == 0):
return True
else:
return False
# simple_code
def Harshad(n):
# n은 하샤드 수 인가요?
return n % sum([int(c) for c in str(n)]) == 0
# 하샤드 수
# my_code
def solution(arr):
answer = sum(list(arr)) / len(list(arr))
return answer
# simple_code
def average(list):
return (sum(list) / len(list))
# 평균 구하는 문제
임의의 자연수가 다음 조작을 거쳐 항상 1이 된다는 추측
# my_code
def solution(num):
num_count = 0 # 숫자 세는 거 초기화
while num != 1:
num_count += 1
# 반복문 돌 때마다 횟수에 1추가
if num % 2 == 0:
num = num / 2
# 짝수 일 경우 2로 나눔
else:
num = num * 3 + 1
# 홀수 일 경우 3곱하고 1더함
if num_count >= 500:
return -1
# 횟수가 500이 넘을경우 -1 값 반환
return num_count
# simple_code
def collatz(num):
for i in range(500):
num = num / 2 if num % 2 == 0 else num*3 + 1
if num == 1:
return i + 1
return -1
# 콜라츠 추측