1. 자료형 리스트 리스트 컴프리헨션 ex. 0~19 중에서 홀수만 포함하는 리스트 array = [i for i in range(20) if i % 2 == 1] N * M 크기의 2차원 리스트를 만들 때 유용하다. array = [[0] * m for _ in range(n)] 람다 표현식 활용 array = list(map(lambda x: x+10, [1, 2, 3])) # [11, 12, 13] 리스트 관련 기타 메서드 원소 삽입: array.append(2) 기본 정렬: array.sort() 원소 뒤집기: array.reverse() 특정 인덱스에 데이터 추가: array.insert(2, 3): 인덱스 2에 3 추가 특정 값을 갖는 원소 제거(값을 가진 원소가 여러 개면 하나만 제거함): ..
코딩 테스트에서 많이 사용되는 Python String 정리 # 문자열 정렬하기 str 타입에는 sort()를 사용할 수 없기 때문에 sorted()를 사용한다. sorted()는 return type이 list이기 때문에 join을 사용하여 다시 string으로 바꿔주는 과정이 필요하다. s.sort() # 불가능 sorted(s) # 가능 "".join(sorted(t)) # 정렬 후 문자열로 # 문자 수 세기: count 특정 문자가 몇 개 포함되어 있는지 개수를 반환한다. >>> s = "abc abc" >>> s.count("a") 2 # 위치 찾기: find 처음으로 나온 문자의 위치를 반환한다. 찾는 문자가 없으면 -1을 반환한다. >>> a = "abcde" >>> a.find('b') 1..

DFS(깊이 우선 탐색) - 다음 분기로 넘어가기 전에 해당 분기를 완벽히 탐색하는 방식 - 적합한 문제: 모든 경우를 탐색해야 할 떄, 순열, 조합 문제, 가지치기 문제 * 가지치기 문: 백트래킹을 사용해서, 가능성이 없는 후보는 즉시 포기하는 문제. 제약 충족 문제. - 구현 방법: 스택, 재귀함수 graph가 다음과 같이 Dictionary로 구성되어 있다. graph = { 1 : [2,3,4], 2 : [5], 3 : [5], 4 : [], 5 : [6,7], 6 : [], 7 : [3] } 재귀로 DFS 구현 def recursive_dfs(root, visited=[]): visited.append(root) for w in graph[root]: if w not in visited: vis..