[ALGORITHM] Programmers ALGORITHM 연습문제 Lv1 (1)
ALGORITHM Übung - Programmers
- 알고리즘 문제 풀이를 통한 코딩 테스트 연습
x만큼 간격이 있는 n개의 숫자
- 18/10/2021
def solution(x, n):
return [x + x*i for i in range(n)]
행렬의 덧셈
- 18/10/2021
def solution(arr1, arr2):
return [[sum(j) for j in zip(*i)] for i in zip(arr1, arr2)]
직사각형 별찍기
- 18/10/2021
a, b = map(int, input().strip().split(' '))
for _ in range(b):
print("*" * a)
핸드폰 번호 가리기
- 19/10/2021
def solution(phone_number):
return '*' * (len(phone_number)-4) + phone_number[-4:]
하샤드 수
- 19/10/2021
def solution(x):
num = 0
for i in str(x):
num += int(i)
if (x/num) == int(x/num):
return True
else:
return False
# 다른 사람의 좋은 풀이
def solution(n):
return n % sum([int(c) for c in str(n)]) == 0
평균 구하기
- 19/10/2021
def solution(arr):
return sum(arr) / len(arr)
콜라츠 추측
- 19/10/2021
def solution(num):
ans = 0
while num != 1 and ans != 500:
if num % 2 == 0:
num /= 2
else:
num = (num * 3) + 1
ans += 1
if ans >= 500:
return -1
else:
return ans
최대공약수와 최소공배수
- 19/10/2021
def solution(n, m):
max_div = 1
for i in range(2, max(n, m)):
if n % i == 0 and m % i == 0:
max_div = max(max_div, i)
return [max_div, int(max_div * (n / max_div) * (m / max_div))]
짝수와 홀수
- 20/10/2021
def solution(num):
return "Even" if num % 2 == 0 else "Odd"
제일 작은 수 제거하기
- 20/10/2021
def solution(arr):
if len(arr) == 1:
return [-1]
else:
small = min(arr)
index_num = 0
for _ in range(len(arr)):
if small == arr[index_num]:
# arr.pop(index_num) # pop은 제거되는 값을 반환, del이 조금 더 효율적
del arr[index_num]
else:
index_num += 1
return arr
# 다른 사람의 좋은 풀이
def solution(arr):
if len(arr) == 1:
return [-1]
small = min(arr)
return [num for num in arr if num > small]