이번 포스팅은 일반 알고리즘을 Pandas를 써서 빠르게 하는 내용입니다.(LOC를 사용한 특정 Col의 Value 바꾸기) 오늘 일하는데, 아래와 같은 상황을 만났습니다. 해당 문제를 단순히 반복문으로 접근하면 아래와 같이 풀이가 가능합니다.import pandas as pdData = pd.DataFrame({"a" : [5,9,7,8,1,2,6,3,7,8,4,9,2,1], "b" : ["A","A","B","D","D","B","A","A","B","D","C","D","C","C"]})Data["c"] = Nonefor i in Data.index: if Data.at[i,"b"]=="C": Data.at[i,"c"] = 1하지만, 위 경우 Data의 길이가 짧으니 가능..
이번 포스팅은 컴퓨터가 어떻게 사칙연산을 처리한는지에 대한 포스팅 입니다. 사칙연산 식을 표현할때는 3가지가 있다고 할 수 있습니다. 1.전위표기 2.중위표기 3.후위표기 자 그러면 이제 이런 표기법이 왜 필요한지 의문이 드실겁니다. 우리가 Programming 언어로 Code를 짜고, 해당 Code를 기반으로 Computer가 동작합니다. 사람은 중위 표기법을 바로 이해할 수 있지만 컴퓨터가 중위표기법을 순서대로 해석할 경우 문제가 발생합니다. 사람의 경우 /와 *가 +, -보다 우선순위인걸 알기 때문에 식 전체를 보고, 우선순위부터 계산합니다. 하지만 컴퓨터가 중위표기법 그대로를 받는다면 순서대로 들어온 operand를 계산하기 때문에 실제 필요한 결과와는 다른 값이 나오는것을 확보실 수 있습니다. ..
지난포스팅에서 다수의 List가 있을 때 특정 List를 기준으로 정렬하는 방법에 대해서 포스팅 하였습니다. 하지만 실제 사용할 때는 특정 List뿐만 아니라, 다수의 List를 기준으로 Table을 정리하는 경우가 있습니다. 이 경우에, 정렬할 list의 우선위를 정해주고 정렬을 하게 됩니다. 예를들어서 List1이 [a,a,a,b,b,e,d,s,a], List2가 [1,6,7,9,7,5,2,1,3]라고 한다면 List1의 1순위, List2를 2순위로 설정할 경우 list가 a인 값에 list2는 1,6,7,3이 존재하게 됩니다. 그럼 이제 list1의 값이 같은 List를 부분배열로 하여 한번더 정렬을 시켜주면 됩니다. 이제 이 정렬할 List의 우선순위가 N개 있다고 치면1. N-1번째 List에..
Data를 처리할 때, Index가 동일한데 다른 속성의 Data를 갖는 2개의 List가 있다고 해 봅시다. 이때 2개의 List를 1개의 DataFrame 형태로 취급할 수가 있습니다.(2개의 List가 Pair를 이루기 때문) 이때, List N개의 List를 특정 List를 기준으로 정렬하는 방법 입니다. Pandas의 pandas.DataFrame.sort_values(by = "")를 내장함수로 구현했다고 볼 수 있습니다. pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html pandas.DataFrame.sort_values — pandas 1.2.2 documentation If True, t..
Win Tree는 Binary Tree의 일종으로, Leaf Node끼리 비교 후 작은값이 승자로 부모노드가 되는 Tree입니다. Heap과 유사해 보이지만, 실질적으로 Distinct한 Element는 Leaf Node만큼만 있다는 것을 알 수 있습니다. 이때, 각 Leaf Node에 이미 Sort된 List를 연결하면, 다수의 List를 하나로 정렬하는 것이 가능합니다. 이제, Win Tree에서 Top Node에 위치한 값을 Orderd List에 넣고, 해당 Leaf Node의 다음 값을 가지고 옵니다. 이런 방식으로 모든 List가 Empty가 될 때 까지 반복을 진행하면, Leaf Node에 붙어있던 모든 List가 하나로 통합된 Ordered List로 통합되게 됩니다. 각 Element를 ..
Heap은 Binary Tree를 활용한 응용된 Tree계열의 자료구조 입니다. Left부터 채워넣은 완전 이진Tree이며, 상위 Node로 갈 수록 Max Or Min 값을 보여주는 Tree입니다. 이때 Max_heap과 Min_heap이 있으며, 아래 예시를 보면 이해하기 쉽습니다. Random한 Array를 Max Heap 또는 Min Heap을 만들었을 경우의 모습입니다. 따로 설명이 필요없어보이네요 이때 Tree구조를 언어에서 표현하는 방법으로 Pointer 방식과 List 방식이 있는데, List 방식으로 구현하도록 하겠습니다. List로 구현할 경우, i번째의 Node는 2i+1, 2i+2번째 노드의 부모Node가 됩니다. (Ex, 위의 1번째 Node는 3, 4번째 Node의 부모Node임..
- Total
- Today
- Yesterday
- 컴퓨터그래픽스
- C++
- 프로그래머스
- 코딩테스트
- 이분탐색
- 사칙연산
- hash
- Greedy알고리즘
- prime number
- git
- 병렬처리
- AVX
- 분할정복
- heap
- Search알고리즘
- 동적계획법
- 알고리즘
- 자료구조
- Python
- SIMD
- Sort알고리즘
- GDC
- stack
- 완전탐색 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |