본문 바로가기

Programming/Python

[Algorithm] 프로그래머스 완주하지 못한 선수(해시) 문제 해당 문제는 해시 알고리즘으로 분류된 문제이며, 겉으로 봤을 땐 단순히 participant 내에 있는 원소 중 completion 에 존재하지 않는 원소가 있다면, 즉 참가자 이름에는 있지만 완주자 리스트에는 없는 이름을 리턴하면 되는 문제이다. 처음 풀이 단순히 문제를 보자마자 리스트 원소 존재 유무에 따라서 다음과 같이 코드를 작성하고 채점을 했더니, 효율성 부분에서 시간초과가 떴다. def solution(participant, completion): answer = '' for i in participant: if i in completion: completion.remove(i) else: answer = i return answer 다른 풀이 1 - 정렬 후 비교 - 리스트 내의 모든 .. 더보기
[Python] instance method / class method / static method https://www.daleseo.com/python-class-methods-vs-static-methods/ 메서드에서 헷갈리는 부분을 정리하기 위해 이 분의 글을 참고하였다! [파이썬] 정적(static) 메서드와 클래스(class) 메서드 Engineering Blog by Dale Seo www.daleseo.com 인스턴스 메서드(instance method) 일반적으로, 클래스 내에서 데코레이터(decorator)없이 메서드를 선언하게 되는 경우. 첫 번째 매개변수로 클래스의 인스턴스, self가 넘어오고, self를 통해 인스턴스 메서드가 인스턴스 속성(attribute)에 접근하거나 다른 인스턴스 메서드를 호출할 수 있다. 또, self를 통해 클래스 속성에 접근하거나 클래스 메서드를 .. 더보기
[Python] 헷갈리는 문법 정리2 - 람다(lambda) 함수(map(), filter(), reduce()) lambda 인자: 표현식 'lambda'는 런타임에 생성해 사용 가능한 익명 함수. 'lambda'는 쓰고 버리는 일시적인 함수로 일반적인 함수와 같이 정의해두고 쓰는 것이 아닌, 필요한 곳에서 즉시 사용하고 버릴 수 있다. f = lambda x: 2*x print(f(10)) g = lambda x, y: x + y print(g(5, 5)) 20 10 def func(n): return lambda x: x+n f = func(2) g = func(4) print(f(10)) # func(2)(10) print(g(20)) 12 24 map() map()은 두 개의 인수를 가지는 함수로, map(function, iterable, ...) 의 구조. 첫 번째 인자 function: 함수, 두 번째.. 더보기
[Python] 헷갈리는 문법 정리1 - enumerate() & zip() enumerate() enumerate() 함수는 인자의 값을 추출 할 때 인덱스를 함께 추출하는 기법. 인덱스 번호와 리스트 원소를 튜플 형태로 반환 fruit = ['apple', 'banana', 'strawberry', 'orange'] for i in enumerate(fruit): print(i) (0, 'apple') (1, 'banana') (2, 'strawberry') (3, 'orange') fruit = ['apple', 'banana', 'strawberry', 'orange'] for i, j in enumerate(fruit): print('index : {} , value : {}'.format(i,j)) index : 0 , value : apple index : 1 , v.. 더보기