분류 전체보기 97

백준 1717번 - 집합의 표현

문제 초기에 {0}, {1}, {2}, ... {n} 이 각각 n+1개의 집합을 이루고 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작성하시오. 예시 입력 7 8 0 1 3 1 1 7 0 7 6 1 7 1 0 3 7 0 4 2 0 1 1 1 1 1 예시 출력 NO NO YES 아이디어 대놓고 유니온 파인드 알고리즘 유니온 파인드 소스코드 #include using namespace std; int N, M; int parent[1000010]; int order[100010][3]; int find(int x) { if (parent[x] == x) return x; return parent[x] = find(pare..

분리집합(유니온 파인드)

유니온 파인드 뼈대 코드 int parent[9]; int find(int x) { //부모노드 찾기 if (parent[x] == x)//인덱스 값이 같다면 리턴 return x; //인덱스 값 리턴 return parent[x] = find(parent[x]); } ///유니온 파인드 뼈대 코드 void merge(int x, int y) { //두 집합을 합치는 기능 x = find(x); y = find(y); if (x == y) return; parent[y] = x; } //두 집합이 서로 같은 집합인지 확인 bool isUnion(int x, int y) { x = find(x); y = find(y); if (x == y) return true; return false; } 집합성 문제 ..

알고리즘 종류와 유형

알고리즘 종류와 유형 1. 문자열 특정 문자열 검색하기 https://www.acmicpc.net/problem/6550 문자열 정렬 https://www.acmicpc.net/problem/20291 https://www.acmicpc.net/problem/17413 https://www.acmicpc.net/problem/20210 문자열 조건 따지기 https://www.acmicpc.net/problem/17609 https://www.acmicpc.net/problem/20437 2. 분리집합(유니온 파인드) 집합성 문제 https://www.acmicpc.net/problem/1717 https://www.acmicpc.net/problem/1976 https://www.acmicpc.net/..

백준 1174 - 줄어드는 수

문제링크 : https://www.acmicpc.net/problem/1174 알고리즘 종류 : 백트래킹 솔? : 보고 함 핵심 아이디어 : 줄어드는 수의 특성을 잘 생각해서 풀어야함 #include using namespace std; int N; string num = "0123456789"; vector correct; void backtracking(int idx, string temp) { if (!temp.empty()) { string _temp = temp; reverse(_temp.begin(), _temp.end()); correct.push_back(stoll(_temp)); } for (int i = idx + 1; i < 10; i++) { temp += num[i]; backtr..

Flutter-PostgresSQL 연동하기

와! Flutter와 로컬 PostgresSQL과 연동에 성공했다. Dart언어에 Postgres 라이브러리를 이용했다 import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:postgres/postgres.dart'; void main() { runApp(const MaterialApp( home: MyApp(), )); } class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override State createState() => _State(); } cl..

프로젝트 2022.10.10

Flutter를 해보자

평소에 워낙에 웹, 앱에 관심이 없어서 간단하게라도 서비스를 만들어보고 싶었다. 하지만 인간(아닐지도..)을 게으르기 때문에 오랫동안 뒷전으로 밀려 지금에 오게 되었다. 그러다가 다니던 회사를 다니다가 출근부를 쓰고 있는데 쓰기 귀찮아서 이거를 자동으로 해주는 서비스를 만들어 보고 싶어졌다. 이왕이면 Github Action이나 CI/CD도 접목시켜 보고싶다. 일단은 간단한 기능부터 만들어보자 어플에서 가장 간단한 인터랙션은 버튼 누르기이다. 그래서.. 화면에 버튼을 배치하고 누르면 뭔가 바뀌는 기능을 만들어보자 import &#39;package:flutter/material.dart&#39;; void main() { runApp(const MaterialApp( home: MyApp(), )); }..

프로젝트 2022.10.09

백준1068 - 트리

문제링크 : https://www.acmicpc.net/problem/1068 알고리즘 종류 : DFS 솔? : 답지보고함 핵심 아이디어 : DFS라는 걸 알고, vector 배열에 자식노드를 줄줄이 꿰내고 잘 삭제해내는 아이디어 #include using namespace std; int N, erase; vector tree[51]; int leap_cnt = 0; int del_node; void dfs(int idx) { bool not_leap = false; //다음번 노드를 갔는데 NULL이면 not_leap가 바뀌지 않는다. //각 노드에 물려 있는 자식들을 순회한다. for (auto next : tree[idx]) { not_leap = true; //이는 즉 말단 노드라는 뜻이다. d..