오늘 푼 알고리즘으로 프로그래머스 레벨 1 연습문제를 모두 풀었다.👏🏻
오늘 푼 문제들은 어제보다 쉬웠던것 같다. 👀
def solution(arr):
if len(arr) > 1:
arr.remove((min(arr)))
return arr
else:
return [-1]
def rm_small(mylist):
return [i for i in mylist if i > min(mylist)]
[-1]
을 리턴하지 않는데 왜 추천수가 제일 높은지 모르겠다(?)def solution(num):
return 'Even' if num%2 == 0 else 'Odd'
def evenOrOdd(num):
if (num%2):
return "Odd"
else:
return "Even"
True
/ False
를 이용했는데 한줄로 할 때도 응용할 수 있겠다고 생각한다.answer = []
def gcd(n, m):
# 유클리드 호제법
if n < m:
n, m = m, n
remainder = n % m
while remainder != 0:
n = m
m = remainder
remainder = n % m
gcd = m
answer.append(gcd)
return gcd
def solution(n, m):
answer.append(n*m/gcd(n, m))
return answer
def gcdlcm(a, b):
c, d = max(a, b), min(a, b)
t = 1
while t > 0:
t = c % d
c, d = d, t
answer = [c, int(a*b/c)]
return answer
max
와 min
함수로 큰수와 작은수를 구분해주고 while loop
에서 스왑하여 깔끔하게 코드를 작성했다.def solution(num):
answer = 0
count = 0
while num != 1 and count<500:
if num%2 == 0:
num = num/2
else:
num = num*3+1
count += 1
if count == 500:
return -1
else:
answer = count
return answer
return answer
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
for
문 을 썼으면 count
변수가 필요 없었다.. 조건문 부분이 같았던 거로 만족쓰,,🙈def solution(arr):
return sum(arr)/len(arr)
def average(list):
return (sum(list) / len(list))
def solution(x):
return True if x%sum(list(map(int, (str(x))))) == 0 else False
def Harshad(n):
return n % sum([int(c) for c in str(n)]) == 0
True
/False
를 반환 하려고 조건문부터 생각했는데 다른 사람의 답을 보니 내가 생각했던 것 보다 더 단순해서 놀랐다..map
함수를 쓰고 있는것 같다.def solution(phone_number):
return phone_number.replace(phone_number[:-4], '*'*len(phone_number[:-4]))
def hide_numbers(s):
return "*"*(len(s)-4) + s[-4:]
replace
하지 않고 그냥 별을 붙여줬다.def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
temp=[]
for j in range(len(arr1[0])):
temp.append(arr1[i][j]+arr2[i][j])
answer.append(temp)
return answer
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
return answer
for loop
와 append
를 보면 한줄로 적어보도록 노력해야겠다.def solution(x, n):
return [i*x+x for i in range(n)]
def number_generator(x, n):
return [i * x + x for i in range(n)]
a, b = map(int, input().strip().split(' '))
for i in range(b):
print('*'*a)
a, b = map(int, input().strip().split(' '))
answer = ('*'*a +'\n')*b
print(answer)