목록전체 글 (264)
정화 코딩

https://www.acmicpc.net/problem/2887 #include #include #include using namespace std;int n;vector> a;vector> e;vector parent;int find(int a) { if (parent[a] == a) return a; else return parent[a] = find(parent[a]);}bool unite(int a, int b) { a = find(a); b = find(b); if (a != b) { parent[a] = b; return true; } else { return false; }}int main() { ios_bas..

0. AbstractMulti-modal reasoning system (멀티모달 추론 시스템)이미지, 텍스트, 음성 등 서로 다른 형태의 데이터를 함께 받아들여 그 관계를 이해하거나 추론하는 AI 시스템-> 사전학습된 객체 탐지기(object detector)를 사용해 이미지를 처리함 예시입력출력VQA (Visual Question Answering)이미지 + 질문("사람이 들고 있는 물건은?")질문에 대한 올바른 정답 (“빨간 컵”)Referring Expression Grounding이미지 + 문장(예: “파란 셔츠 입은 사람”)문장이 설명하는 객체의 박스 위치 (그 사람의 박스 위치)Image Captioning이미지이미지를 설명하는 문장 생성 (“고양이가 소파에 누워 있다”)Image-Text ..

zotero는 서지 관리 프로그램으로 논문을 편하게 관리하고 읽을 수 있도록 도와주는 툴이다.나는 윈도우 노트북(데스크탑)과 아이패드에 동기화가 잘 되도록 설정하고자 한다. 1. zotero 계정 생성https://www.zotero.org/2. 노트북에 zetero 프로그램 설치https://www.zotero.org/Download를 클릭하여 설치한다. 나는 Zotero 7 for Windows를 설치했다.3. zotero에 계정 연결Edit>Settings>Sync>Data Syncing새로 가입해서 생성한 zotero 계정 아이디, 비밀번호를 입력한다.4. 드라이브 준비: koofr (무료 10GB)https://koofr.eu/Preferences>Password>App passwordsGene..

https://www.acmicpc.net/problem/1509 dp 배열 2개를 사용해서 풀었다.1. 모든 구간에 대해서 팰린드롬인지 아닌지를 저장하는 배열p[i][j] : i부터 j까지의 문자열이 팰린드롬이면 true, 아니면 false이 배열을 채울 때는 구간의 길이가 1일 때, 2일 때, ... 순서로 채워준다. 어떤 구간이 팰린드롬이고 직전 문자와 직후 문자가 같으면 그 구간도 팰린드롬임을 활용해서 채우면 된다.2. 팰린드롬 분할 개수의 최솟값을 저장하는 배열 (정답을 구하는 배열)dp[i] : i까지의 문자열의 팰린드롬 분할 개수의 최솟값이 배열은 0부터 j까지의 팰린드롬 분할 개수의 최솟값, 즉 dp[j]가 x이고 j+1부터 i까지의 문자열이 팰린드롬이면 dp[i]를 x + 1로 갱신할 수..

https://www.acmicpc.net/problem/16566 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, k; cin >> n >> m >> k; set blue; for (int i = 0; i > x; blue.insert(x); } for (int i = 0; i > x; auto it = blue.upper_bound(x); cout (TLE)단순히 수들을 set에 넣어두고 upper_bound로 수를 찾고 지워주고...를 반복하면 시간 초과를 ..

https://www.acmicpc.net/problem/1106 Knapsack 문제 중에서도 Unbounded Knapsack 문제이다.Unbounded Knapsack 문제는 Knapsack 문제 중 아이템을 무한히 선택 가능한 상황이다. 사실 Unbounded Knapsack 문제는 처음이라서, 나는 처음에 아이템을 복사해주고 일반적인 Knapsack처럼 하면 되는 줄 알았다. (찾아보니 이건 아이템을 정해진 횟수만큼만 선택할 수 있는 Bounded Knapsack 문제에서 사용할 수 있는 방법인 것 같다.)첫 번째 풀이: 홍보 도시를 중복으로 사용할 수 있도록 복제 + 2차원 dp 배열을 사용해서 냅색#include #include using namespace std;int MAX_COST = ..

https://www.acmicpc.net/problem/28707 나는 두가지 방법으로 풀었는데, 공통적으로 필요한 아이디어는 각 배열의 상태를 정점으로 생각하고 하나의 swap 연산을 가중치가 있는 간선으로 생각하는 것이다. 그리고 방문했는지 여부와 걸린 시간은 vector 배열을 key로 하고 걸린 시간 int를 value로 하는 map으로 처리한다. 첫번째는 BFS를 사용한 풀이이다.단순히 방문할 때마다 비내림차순 상태가 맞는지 확인 후 ans를 갱신하고, 다음 상태들을 쭉 보면서 방문한 적 없거나 시간이 덜 걸린 경우에만 큐에 넣어주면서 탐색했다. #include #include #include #include using namespace std;int n, m;vector a;vector c..

https://www.acmicpc.net/problem/17370 각 이동은 위와 같이 벡터로 표현할 수 있다. 실수 좌표계에서 방문 처리를 하는 법은 여러 방법이 있을 수 있겠지만 나는 두가지 방법으로 구현해보았다. 1. 실수 좌표를 그대로 사용, 대신 오차 범위를 두고 비교벡터는 동일하게 (1, 0) (0.5, sqrt(3)/2), (-0.5, sqrt(3)/2), ... 이런 식으로 계산한다. 다만 소수점 둘째자리 정도까지 반올림해주었다. 그래야 계산 상의 차이로 아주 작은 오차가 생겼을 때 같은 점으로 인식할 수 있다. 나는 실수를 scale 후에 반올림을 해서 정수로 만들고, pair을 원소로 하는 set으로 방문 처리를 해주었다. #include #include #include #inclu..