목록2024/02/21 (5)
미소를뿌리는감자의 코딩
python의 sort는 어떤 알고리즘을 사용할까? 주로 사용되는 정렬함수 [ sorted() ] 와 리스트 타입의 메소드 [ sort() ] 는 모두 내부적으로 'Timsort' 알고리즘을 사용한다. Timsort는 팀 피터스가 파이썬을 위해 개발한 정렬 알고리즘이다. 삽입 정렬과 병합 정렬의 특징을 결합한 알고리즘이다. -> 이제 삽입 정렬과 병합 정렬에 대해서 알아보자 1) 삽입 정렬 [ Insertion Sort ] - 배열을 정렬된 부분과 정렬되지 않은 부분으로 나눈다. - 정렬되지 않은 부분의 첫 번째 원소를 적절한 위치에 삽입하여 정렬된 부분을 확장해 나가는 방식으로 작동한다. 최선의 경우 : O(n) 평균, 최악의 경우: O(n^2) 특징: - 안정적인 정렬 방법이다. - 작은 데이터 세트..
https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 1. 접근 방법 이전에 Java로 문제를 처음 풀었을 때에는, 규칙을 찾는 것인지 몰라 많이 헤맸었다. 하지만, 이번에는 규칙을 찾는 것임을 알고 있었기에 비교적 쉽게 풀 수 있었다. 우선 거리에 따른 횟수를 노트에 적어가며 규칙을 찾도록 했다. 이런식으로 적어주었다. 이후 동그라미를 친 숫자들을 보면, 제곱수를 대상으로 위아래로 루트(제곱수) 만큼 숫..
1. ORM ORM stands for... Object-Relational Mapping 이다. 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형의 시스템 간에 데이터를 변환하는 프로그래밍 기술이다. 즉, 간단히 말하면 객지프 언어를 사용, 호환되지 않는 것을 가져와서 이용하기 위함. 이라고 할 수 있을 것 같다. 구체적으로 이야기 해보면, ORM은 DB의 table을 object로 mapping하여 DB의 record에 대한 작업을 객체 지향적으로 수행할 수 있도록 해준다. -> 이를 통해서 ... SQL 쿼리를 직접 작성하는 대신, 객체의 속성과 메서드를 사용하여 데이터를 조작할 수 있다. 장점 vs. 단점 1) 장점 - 생산성과 유지보수성 향상: ORM을 사용하면 반복적인 CRUD(Crea..
https://www.acmicpc.net/problem/14534 14534번: String Permutation First line of the input contains T (1 ≤ T ≤ 200), the number of test cases. For each test case, there will a string of characters, L (1 ≤ L ≤ 5). www.acmicpc.net 1. 접근 방법 이 문제는 DFS 로 풀면 간단할 것 같다는 생각이 들었다. 그래서 각 문자열을 받고, DFS 함수로 넘겨주었다. def DFS(route, chars): if not chars: result.append(route) return for i in range(len(chars)): DFS(r..