공부

공부

[자료구조] CS 질문 & 답변 정리

질문 1. 배열과 연결 리스트의 차이 2. 각 자료구조의 시간복잡도 시간복잡도 Array Array list Linked List Doubly Linked List 삽입 삭제 조회 특징 및 장단점 1) 삽입/삭제 시 특징은? 2)최악의 경우를 고려한 시간복잡도는? 배열과의 차이점은? 최악의 경우를 고려한 시간복잡도는? - 3. 연결리스트, 이중 연결리스트에서 삽입, 삭제, 조회의 시간복잡도가 O(1)이 나오려면 어떤 경우 인가? 4. 스택 & 큐의 형태에 대해 설명하시오 5. 이진 탐색 트리 탐색의 시간복잡도는? 6. 전위, 중위 후위에 대한 순서는? 전위: 중위: 후위: 7. 우선순위 큐의 구조와 시간복잡도는? 8. 해시 테이블의 구조와, 조회가 빠른 이유는? 9. 해시 테이블의 충돌이 발생할때 분리 ..

공부

Union-Find, 크루스칼 알고리즘, 프로그래머스 문제풀이

1. Union FInd 관련 정리 노드와 간선이 연결되어 그래프가 주어질 때, 각 노드의 부모노드를 찾아 반환해주는 알고리즘 즉, 연결된 노드끼리 같은 그래프에 포함되어 있는지 확인하는 알고리즘 # 부모 노드 탐색 테이블에 위치한 값을 반환 def getgraph(graph, x): if graph[x] == x: return x else: return getgraph(graph, graph[x]) # 연결된 두 노드 중 부모 노드를 입력하는 함수 def uniongraph(graph, a, b): a = getgraph(graph, a) b = getgraph(graph, b) print(graph, a, b) if a < b: graph[b] = a else: graph[a] = b # 연결된 두 ..

공부/알고리즘

9184 문제 신나는 함수 실행 python - [백준-실버2/재귀함수]

문제 내용 요약 if a 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise it returns: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) 위의 함수를 구현하는 것은 매우 쉽다. 하지만, 그대로 구현하면 값을 구하는데 매우 오랜 시간이 걸린다. (예를 들면, a=15, b=15, c=15) a, b, c가 주어졌을 때, w(a, b, c)를 출력하는 프로그램을 작성하시오. 문제 원리파악 다이나믹 프로그래밍을 풀때 Top Down..

공부/알고리즘

코테 파이썬 필요 함수, 라이브러리 정리

eval 문자열을 식으로 입력하면 해당 결과값 반환 a = eval("100 + 32") 132 출력 a = eval("Block + blog") Blockblog 출력 Join 리스트의 값을 연결하여 문자열로 출력할 때 a = ['a','b','c','d'] ''.join(a) 출력 : abcd '_'.join(a) 출력 : a_b_c_d Lambda 리스트의 값을 연결하여 문자열로 출력할 때 val_lsit = [ [3, 3], [1, 1], [2, 2],[1, -1], [3, 4]] val_list = sorted(val_list, key = lambda x: [x[1], x[0]]) x[1]을 기준으로 먼저 정렬하고, x[0]에 대해서 정렬 출력 : [[1, -1], [1, 1], [2, 2], ..

공부/알고리즘

1427문제 소트인사이드 python - [백준-실버5/정렬/리스트합치기]

문제 내용 요약 문제풀이 a = input() val_list = [] for i in range(len(a)): val_list.append(a[i]) print(''.join(sorted(val_list, reverse = True))) join함수에 대해서 향후 활용하면 좋을것 같아 정리함 리스트를 문자열로 표현하는 방법 a = ['1','2','3','4','5'] ''.join(a) 결과 : 12345 '_'.join(a) 결과 : 1_2_3_4_5

공부/알고리즘

N으로 표현 python - [프로그래머스/DP 알고리즘]

문제 내용 요약 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 문제 원리파악 해당 문제는 다른 사람풀이..

1Seok
'공부' 카테고리의 글 목록