일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- semanage
- selinux port 등록
- regex_search
- 백준
- snmp
- 정규식 활용
- subporcess path
- gcc regex
- python subprocess
- grafana dashboard
- InfluxDB
- telegraf
- CentOS7
- gcc 업데이트
- c3 second
- c3 초
- g++ 업데이트
- snmp test
- c3 축 없애기
- c3 step graph
- python os
- linux시간으로 변경
- 1697
- c3 축 가리기
- centos pyhon 설치
- c++ 정규식
- influxdb 설치
- 정규식 문자열 출력
- python popen
- 정규식 컴파일
- Today
- Total
목록알고리즘 (45)
리셋 되지 말자
코드 import sys n = int(input()) arr = [] for _ in range(n): arr.append(int(sys.stdin.readline())) arr.sort() for num in arr: print(num) 설명 입력 횟수가 (1 ≤ N ≤ 1,000,000) 이라서 일반 input()을 사용하면 시간초과가 난다 sys 모듈의 stdin.readline()을 이용하면 입력이 빨라져서 시간초과를 피할 수 있다
코드 from itertools import combinations n, m = map(int, input().split()) arr = list(map(int, input().split())) max_num = 0 for com in combinations(arr, 3): sum_com = sum(com) if sum_com
코드 n = int(input()) flag = False for num in range(n+1): string_num = str(num) if num + sum(list(map(int, list(string_num)))) == n: print(num) flag = True break if not flag: print(0) 설명 생성자는 타겟 숫자보다 커질 수 없으므로 범위를 1부터 타겟 숫자+1 까지 브루트포스로 전부 검색
코드1 - Counter from collections import Counter n = int(input()) arr1 = map(int, input().split()) arr1 = Counter(arr1) m = int(input()) arr2 = map(int, input().split()) for num in arr2: if num in arr1: print('1') else: print('0') 첫 배열을 Counter 를 이용해 dict 자료구조로 바꾼 뒤, in으로 탐색한다. O(1) 이므로 통과 코드2 - set n = int(input()) arr1 = map(int, input().split()) arr1 = set(arr1) m = int(input()) arr2 = map(int, ..
코드 import sys n, k = map(int, input().split()) arr = [] end = 0 for _ in range(n): arr.append(int(sys.stdin.readline())) end = max(end, arr[-1]) start = 1 while start = k: start = mid + 1 else: end = mid - 1 print(end) 설명 이분탐색의 while문 조건은 start
dfs로 풀었는데 분명 연결 요소 개수는 분명 맞는데 자꾸 50%에 틀리던 중, 아무것도 연결 되지 않은 것도 연결 요소로 count해야 한다고 한다. 젠장 한시간 뻘짓함 예시 ) 간선이 5개고 (1,2), (2,3), (3,4)로 주어지면 정답은 2 여야 한다. (5는 아무것도 연결되어 있지 않음) dfs 코드를 그대로 두고, 입력을 다 받은 뒤 빈 행을 체크해서 연결요소를 +1 해주어서 해결 #include //#define INF 1e9 using namespace std; int n, m; int **arr; int cnt; stack s; void dfs() { while(!s.empty()){ int y=s.top().second; //cout> y; arr[x][y] = 1; arr[y][x..
sort 활용 예시 vector v; v.sort(v.begin(), v.end());위처럼 하면 자동으로 first를 기준으로 오름차순으로 정렬된다 first가 같으면 second를 기준으로 오름차순으로 정렬된다. second를 기준으로 우선 오름차순 정렬 후, second가 같으면 x를 기준으로 오름차순 정렬 코드1 (백준 11651) #include using namespace std; bool compare(pair a, pairb){ if(a.second==b.second){ return a.firstc; vector v(c); for(int i=0; i>v[i].first>>v[i].second; } sort(v.begin(), v.end(), compare); for(int i=0; i
기본 형태 priority_queue 연산 push(원소) : 우선순위 큐에 원소 추가 pop() : 우선순위 큐에서 top의 원소를 삭제 top 확인 top() : top에 있는 원소를 반환 기타 empty() : 우선순위 큐가 비어있으면 true, 아니면 false를 반환 size() : 우선순위 큐의 원소의 갯수를 반환 Max Heap priority_queue pq; 비교함수가 less이면 top에 최댓값이 온다 Min Heap priority_queue pq; 비교함수가 greater이면 top에 최솟값이 온다 우선순위 큐의 pair priority_queue pq; pair로 우선순위 큐를 구현할 때, 첫 번째 값으로 비교를하고 첫 번째 값이 크면 자동으로 두 번째 값으로 비교를 하여 Heap..