본문 바로가기

코테 준비27

[프로그래머스] Level 1. 나누어 떨어지는 숫자 배열 def solution(arr, divisor): answer = [] for element in arr: if (element % divisor) == 0: answer.append(element) if len(answer) == 0: answer.append(-1) return sorted(answer) 나누어 떨어지는 수들만 answer 리스트에 추가 만약 아무것도 추가되지 않아서 리스트 길이가 0이면 -1추가 마지막으로 정렬된 리스트 리턴 2022. 2. 18.
[프로그래머스] Level 1. 약수의 합 from math import isqrt def solution(n): answer = 0 for i in range(1, isqrt(n) + 1):# 1 if (n % i) == 0:# 2 answer += i if i != (n // i):# 3 answer += (n // i) return answer # 1 - 12의 약수를 구하기 위해 작은 수부터 나누어 준다면 (1, 12), (2, 6), (3, 4), (4, 3), (6, 2), (12, 1)이다 - 이때 4부터는 앞에것의 중복이므로 3까지만 나누어주면 된다 - 12는 3^2 = 9보다 크고 4^2 = 16보다 작으므로 isqrt(12) = 3번만 나누기를 하면 된다 i 2022. 2. 18.
[프로그래머스] Level 1. 같은 숫자는 싫어 def solution(arr): answer = [] tmp = None# 마지막으로 answer 리스트에 추가된 원소 for i in arr: if tmp == i: pass else: answer.append(i) tmp = i return answer 리스트 요소 돌면서 tmp가 arr의 요소와 같은지 확인 같으면 pass하고 다르면 answer 리스트에 추가한 후 tmp 바꿔줌 2022. 2. 16.
[프로그래머스] Level 1. 최대공약수와 최소공배수 import math def solution(n, m): gcd = math.gcd(n, m) lcm = gcd * (n/gcd) * (m/gcd) answer = [gcd, lcm] return answer math.gcd() - greatest common divisor, 즉 최대공약수를 구해준다 - 파이썬 3.5부터 사용가능하다. 원래는 2개의 인자만 지원이 되었으나 3.9부터 임의의 개수 인자에 대한 지원이 추가되었다. math.lcm() - lowest common multiple, 즉 최소공배수를 구해준다 - 버전 3.9부터 사용 가능하다. 그래서 프로그래머스에서는 사용할 수 없는 함수이다 2022. 2. 15.
[Python] 파이썬 표준 라이브러리: math import math 이 모듈은 수학과 관련된 함수를 제공한다 복소수와 함께 사용할 수 없으며 복소수를 사용해야할 경우 cmath 모듈을 사용해야 한다 특별하게 명시되지 않는 한 모든 반환 값은 float이다 https://docs.python.org/ko/3/library/math.html math — 수학 함수 — Python 3.10.2 문서 math — 수학 함수 이 모듈은 C 표준에서 정의된 수학 함수에 대한 액세스를 제공합니다. 이 함수는 복소수와 함께 사용할 수 없습니다; 복소수를 지원해야 하면 cmath 모듈에 있는 같은 이름의 함 docs.python.org 2022. 2. 15.
[프로그래머스] Level 1. 두 정수 사이의 합 def solution(a, b): if a == b: return a else: answer = 0 for i in range(min(a,b), max(a,b)+1): answer += i return answer def solution(a, b): if a == b: return a else: return sum(range(min(a,b), max(a,b)+1)) range()를 통해 a와 b 사이에 속한 모든 정수를 구한다 range(a, b)면 a부터 b-1까지 구하므로 b+1을 해야한다 이 때 b가 더 커야하므로 min(), max()를 통해 더 작고 큰 것을 구한다 sum() - iterable의 합을 구하는 함수 2022. 2. 11.