일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1764
- 백준 1406
- 풀이
- 백준 5397
- 조세퍼스 순열
- 스택의 특징
- ㅣ풀이
- 구현
- 백준
- 5397
- 별 찍기 10
- C/C++ 구현
- 원판 돌리기
- 자료구조
- 백준 17471
- 게리멘더링2
- 시간 복잡도
- 백준 1158
- heap
- Stack 이란
- AVL 시간 복잡도
- c#
- 해시 구현
- 백준 2447
- 해시구현
- 백준 17779
- 버킷 정렬
- 백준 17822
- qorwns
- dfs
- Today
- Total
목록파이썬 (21)
홍시홍의 프로그래밍
요구사항 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000) xi와 yi 두개가 주어졌을때 1. x에 대해서 오름차순 2. xi, yi가 같을때, yi에 대해서 오름차순으로 정렬 참고 파이썬에서는 key를 통해 내가 원하는 방식으로 정렬가능하다. Default는 오름차순으로 정해져 있다 정렬을 활용하는 방법은 아래와 같다. arr.sort(key = lambda x: (x[0], x[1])) 또한, 파이썬에서는 from functools import cmp_to_key 모듈을 활용하여 내가 원하는 방식으로 정렬도 가능하다 sort(arr, key=cmp_to_key(함수))의 형태로 가능하며 내가 원하는 함수를 직접작성하여 사용한다 풀이 import sys input = sys.stdin.readl..
요구사항 N(1 ≤ N ≤ 10,000,000)개의 숫자를 정렬하라 참고 1. 정렬의 하한은 NlonN 이다 -> 정렬로 구성할 수 있는 결정트리를 만들게 되면 리프 노드의 개수가 logN! = NlonN인 결정 트리를 만들 수 있다 -> 그 중에 하나가 정렬된 상태이다 -> 그러므로 NlogN이 정렬이 하한이다 2. 10,000,000을 정렬의 하한을 적용시켜 보면 제한시간안에 문제를 풀 수 없다 ->그러므로 정렬이 아닌 다른 방법으로 풀이를 진행하여야 한다 3. 주어진 숫자의 범위가 작으니깐 각 숫자가 몇번 나왔는지 출력한다 풀이 import sys input= sys.stdin.readline n=int(input()) arr= list(range(10010)) #입력을 받을 때 마다 해당 arr을..
요구사항 수의 개수가 1 ≤ N ≤ 1,000,000개 일 때, 정렬하기 참고 퀵 정렬 구현하여 문제 풀이를 진행하였다. 퀵 정렬은 피벗을 기준으로 왼쪽에는 작은 값 오른족에는 큰 값을 오게 만들어 재귀를 통해 정렬하는 것이다 풀이 import sys arr=[] n=int(input()) for i in range(n): arr.append(int(sys.stdin.readline().rstrip())) def QuickSort(left, right, arr): #left 가 클 경우 종료 if(left>=right): return i = left j = right pivot = arr[(left+right)//2] #i, j가 교차 하면 종료 while(i 교환해야함 while(arr[i] 교환해야함..