[Python] 집합
집합 - 중괄호 { }로 감싸서 표현 - set() 함수를 사용 s1 = set([1, 2, 3]) s2 = set({1, 2, 3}) s3 = {1, 2, 3} - set()의 괄호 안에 리스트를 입력하여 만들거나 문자열을 입력하여 만들 수도 있음 s4 = set("Hello") - 비어 있는 집합 자료형 생성 s = set() 집합 자료형의 특징 ① 중복을 허용하지 않는다. s4 = set("Hello") # s4 = {'e', 'H', 'l', 'o'} ② 순서가 없다. → 인덱싱으로 값을 얻을 수 없다. set에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환 후 인덱싱 s1 = set([1, 2, 3]) l1 = list(s1) # l1 = [1, 2, 3] l1[0] # 1 교집합 구하..
[BOJ] 7983번 내일 할거야 (C++)
https://www.acmicpc.net/problem/7983 7983번: 내일 할거야 내일(1일)부터 연속으로 최대 며칠 동안 놀 수 있는지를 출력한다. 가령, 답이 0이면, 내일 과제를 해야 하며, 1 이면, 모레에 과제를 해야 한다. www.acmicpc.net #include #include #include using namespace std; bool compare(pair& a, pair& b){ return a.second > b.second; } int main() { int n, d, t; cin >> n; vector v; for(int i = 0; i > d >> t; v.push_back({d, t}); } sort(v.begin(), v.end(),..
[BOJ] 11505번 구간 곱 구하기 (C++)
https://www.acmicpc.net/problem/11505 11505번: 구간 곱 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 곱을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net #include #include #include using namespace std; int N, M, K; long long arr[1000001]; long long *tree; long long init(int node, int start, int end) { if (start == end) { return tree[node] =..
[BOJ] 2042번 구간 합 구하기 (C++)
https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net #include #include #include using namespace std; int N, M, K; long long arr[1000001]; long long *tree; long long init(int node, int start, int end) { if (start == end) { return tree[node] = a..