반응형 입문31 Python 최빈값 구하기 [코딩테스트 입문 - Day3] 문제 구현 코드 import statistics def solution(array): temp = statistics.multimode(array) return -1 if len(temp)>1 else temp[0] statistics의 multimode를 사용해 최빈값을 추출했다. 참고 : (https://docs.python.org/ko/dev/library/statistics.html) multimode의 설명은 다음과 같다. array에서 먼저 발견되는 순서대로 가장 자주 등장하는 값의 리스트를 반환한다. 여러 최빈값이 있으면 둘 이상의 결과를 반환하고 비어있다면 빈 리스트를 반환한다. 이 방법은 잘 쓰지 않는 방법이라 코딩테스트에서는 권장하지 않는다. 다른 풀이 enumerate를 써서 배열의 .. 2023. 1. 16. Python 나머지 구하기 [코딩테스트 입문 - Day3] 문제 구현 %연산자를 이용해서 num1%num2를 리턴하면 된다. 코드 def solution(num1, num2): return num1%num2 다른 풀이 solution = lambda x,y : x%y 2023. 1. 16. Python 짝수는 싫어요 [코딩테스트 입문 - Day3] 문제 구현 list comprehension과 range를 이용해 한 step씩 건너뛰도록 구현하면 된다. 코드 def solution(n): return [i for i in range(1, n+1, 2)] range (시작, 끝, 스텝) 이렇게 사용된다. 위 코드는 1이상 n+1 미만 범위에서 2씩 건너뛰도록 한 것이다. 즉 [1,1+2,1+2+2,..... ] 이렇게 n까지 증가하게 된다. 다른 풀이 def solution(n): return [x for x in range(n + 1) if x % 2] range의 스텝값을 빼고 % 2의 나머지가 있을 때(==홀수일 때)를 추출해 줘도 된다. 2023. 1. 16. Python 분수의 덧셈 [코딩테스트 입문 - Day2] 문제 구현 분수의 덧셈을 정리해보면 a/b + c/d = (a*d+b*c)/b*d 다. 여기서 추가로 최대공약수를 이용해 약분해주면 된다. 코드 import math def solution(numer1, denom1, numer2, denom2): numer = denom1*numer2 + denom2*numer1#분자 denom = denom1 * denom2#분모 gcd = math.gcd(denom, numer)#최대공약수 구하기 return [numer//gcd, denom//gcd] 다른 풀이 유클리드 호제법을 써서 최대공약수 구하는 부분을 직접 구현해도 된다. (참고 https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%.. 2023. 1. 13. 이전 1 ··· 3 4 5 6 7 8 다음 반응형