자료구조
-
-
-
코딩테스트 기초자료구조 2022. 10. 5. 15:41
어쩌다 보니 코테를 준비하게 되었다. 3일이라는 매우매우 짧은 시간이지만 최선을 다해 반타작 이상을 맞추는게 이번 첫 코테의 목표이다. 😈 알고리즘 성능평가 😈 딥러닝과 달리, 일반적으로 알고리즘을 짤때는 코드를 효율적으로 작성하는 것이 가장 중요하다. 이를 측정하기 위해 알고리즘 성능평가를 하는데, 이것이 무엇인지 다시 한번 복습하는 시간을 가지겠다. 1. 복잡도 복잡도는 알고리즘의 성능을 나타내는 척도이다. 크게 시간 복잡도와 공간 복잡도가 있는데, 이는 각각 알고리즘의 수행 시간과 메모리 사용량을 의미한다. 2. 빅오 표기법 가장 빠르게 증가하는 항만을 고려하는 표기법이다. 즉 함수의 상한만을 나타낸다. (극한의 개념으로 생각하면 편하다.) 기본적으로 python의 경우 C언어보다 시간이 더 많이 ..
-
[Python] 순열과 동적계획법자료구조 2022. 10. 4. 20:40
💟 문제 : 입력 길이 n일 때 n 이하의 수에 대해서 모든 순열의 경우를 나열해보시오. def combinations(s): if len(s) < 2: return s res = [] for i,c in enumerate(s): res.append(c) for j in combinations(s[:i]+s[i+1:1]): res.append(c+j) return res 코드 분석 : 순열의 문제를 재귀함수로 풀어낸 코드이다. 재귀함수하니까 떠오른 것이 동적계획법이기 때문에 동적계획법에 대해 공부하도록 하겠다. 동적 계획법 이란 복잡한 문제를 간단한 여러 하위 문제들로 나눠서 푸는 것으로 하위 문제가 서로 종속성을 가질 때 사용된다. (Divide and Conquer과 매우 유사하다) 동적 계획법은 모..
-
[Python] 튜플과 리스트자료구조 2022. 10. 4. 19:53
튜플 : 괄호 () 안에 값과 쉼표를 사용해 생성한다., 불변 시컨스 타임 튜플의 예 : ('a','b','c') 1.네임드 튜플 파이썬의 표준 모듈 중 collections에는 네임드 튜플이라는 시컨스 데이터 타입이 있다. 네임드 튜플이란? 튜플 항목을 인덱스 위치 뿐만 아니라 이름으로도 참조할 수 있다. >>> import collections >>> Person = collections.namedtuple('Person', ('name','age','gender')) >>> p = Person('hijoo',1,'w') >>> p Person(name='hijoo', age=1, gender='w') >>> p[0] 'hijoo' >>> p.name 'hijoo' ===================..
-
[Python] 문자열 메소드자료구조 2022. 9. 29. 22:40
1. A.join(B) 리스트 B에 있는 모든 요소를 A를 사용해 하나의 문자열로 결합해준다. >>> test_list = ['a','b','c','d'] >>> " ".join(test_list) 'a b c d' 2. A.format() 문자열 A에 변수를 추가하거나 형식화하는데 사용 (의외로 유용하게 쓰이는 경우가 꽤 있다!!) >>> "이름 : {who}, 특기 : {what}".format(who="heejoo", what="deep learning") '이름 : heejoo 특기 : deep learning' 3. locals() 현재 스코프에 있는 지역 변수를 딕셔너리로 변환 (여기서 ** 연산자의 의미 : 함수로 전달하기에 적절한 키-벨류 딕셔너리가 생성된다 ) >>> name = "hee..