분류 전체보기
-
[BOJ]백준 18223번: 민준이와 마산 그리고 건우(C++)/DijkstraProblem Solving/BOJ(백준) 2021. 7. 6. 01:46
https://www.acmicpc.net/problem/18223 18223번: 민준이와 마산 그리고 건우 입력의 첫 번째 줄에 정점의 개수 V와 간선의 개수 E, 그리고 건우가 위치한 정점 P가 주어진다. (2 ≤ V ≤ 5,000, 1 ≤ E ≤ 10,000, 1 ≤ P ≤ V) 두 번째 줄부터 E개의 줄에 걸쳐 각 간선의 정보 www.acmicpc.net 다익스트라 기본 문제 !! 최단거리 경로에 특정 정점 P가 포함될 수 있느냐? 를 묻는 문제이다 시작 노드 ➡ 도착 노드 로의 최단거리를 구하고, 시작 노드 ➡ 경유 노드 ➡ 도착 노드 의 최단거리를 구했을 때 합이 같거나 작아야 한다(사실 같아야 한다) #include #include #include #define pii pair #define..
-
Transaction은 논리적 작업 단위의 집합이다Computer Science/Database 2021. 7. 6. 01:03
데이터베이스에서 의미하는 트랜잭션이란 데이터베이스 관리 시스템(DBMS) 또는 유사한 시스템(트랜잭션의 성공과 실패가 분명하고 상호 독립적이며 일관되고 신뢰성 있는 시스템)에서의 가장 작은 상호작용 단위를 말한다. Transaction: 하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합 ex) 계좌 간의 자금 이체 한 계좌에서 다른 계좌로 10만원을 이체하는 작업은 한 계좌에서 10만원 인출 + 다른 계좌로 10만원 입금의 두 작업으로 구성된다 하지만 전체 작업이 정상적으로 처리될 수 없는 경우 아무 것도 실행되지 않은 처음 상태로 복구되어야 한다 따라서 트랜잭션이란 다양한 데이터 항목들을 액세스하고 갱신하는 프로그램 수행의 단위가 된다 위의 그림은 트랜잭션이 가질 수 있는 상태를 나타낸다 Act..
-
[BOJ]백준 15988번: 1, 2, 3 더하기 3(C++)/DPProblem Solving/BOJ(백준) 2021. 7. 4. 23:09
https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 오랜만에 DP 기본문제 숫자가 커질 수 있으니 계산 과정에서 나머지 연산을 꼭 해줘야 한다 !! 처음에 최대 숫자까지 미리 계산해준 뒤 입력에 따라 출력만 제대로 해주면 끝 #include #define MOD 1000000009 int n, tc, dp[1000005] = { 0,1,2,4 }; int main() { for (int i = 4; i
-
[BOJ]백준 17490번: 일감호에 다리 놓기(C++)/MSTProblem Solving/BOJ(백준) 2021. 7. 3. 00:35
https://www.acmicpc.net/problem/17490 17490번: 일감호에 다리 놓기 2번, 4번, 5번 강의동과 와우도를 연결하면 가지고 있는 돌 내에서 징검다리를 완성할 수 있다. 이 때, 어떤 한 강의동에서 다른 모든 강의동으로 가는 길이 존재한다. www.acmicpc.net 간만에 제대로된(화나는) MST 문제 이렇게 호수 주변의 강의실(노드)들이 있고, 가운데에 와우동?이 있으며 각 강의실을 특정 개수의 돌멩이로 연결할 수 있을 때 K개 이하를 사용해서 모든 강의실이 연결될 수 있는지 묻는 문제 우선 이웃한 강의실 끼리는 공사중인 경로를 제외하고 기본적으로 모두 연결되어 있다 그렇기에 공사중인 경로가 1개 이하이면(0개이면 1~N까지의 강의실이 O 형태로 처음부터 연결되어있음,..
-
[BOJ]백준 1939번: 중량제한(C++)/Dijkstra, Binary SearchProblem Solving/BOJ(백준) 2021. 6. 30. 23:09
https://www.acmicpc.net/problem/1939 1939번: 중량제한 첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리 www.acmicpc.net 이진탐색+그래프탐색 문제 건널 수 있는 최대 중량(중량의 범위)을 알아내는 것이기 때문에 해당 범위를 binary search로 찾아내야하고, 처음에는 DFS로 돌렸으나 메모리초과가 뜨길래 왜틀렸지?하고 질문게시판을 뒤져본 결과 "인접 행렬로 연결 상태를 저장하면 메모리가 터지기 때문에 인접 리스트로 구현해야 한다"는 것을 알았다 사실 그래프 탐색 ..
-
[BOJ]백준 17396번: 백도어(C++)/DijkstraProblem Solving/BOJ(백준) 2021. 6. 30. 00:49
https://www.acmicpc.net/problem/17396 17396번: 백도어 첫 번째 줄에 분기점의 수와 분기점들을 잇는 길의 수를 의미하는 두 자연수 N과 M이 공백으로 구분되어 주어진다.(1 ≤ N ≤ 100,000, 1 ≤ M ≤ 300,000) 두 번째 줄에 각 분기점이 적의 시야에 보이는 www.acmicpc.net 다익스트라 기본 문제 요즘 다익스트라가 어렵게 나오는 것 같아서 다익스트라 심화 문제를 얼른 많이 풀어보고 싶다 어제 카카오 기출 훑어봤을 때에는 트리에서의 다이나믹프로그래밍 문제도 있더라 .... 저번 주에 너무 놀아서 다시 문제 많이많이 풀어야겠다 문제에서 주어진 시야에 보이는 노드들을 disable하고 dijkstra로 탐색하는 과정에서 도착 노드가 아닌 disab..
-
[BOJ]백준 11728번: 배열 합치기(Python)/Two PointerProblem Solving/BOJ(백준) 2021. 6. 29. 00:42
https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net merge sort스러운 투포인터 문제 n,m=map(int,input().split()) A=list(map(int,input().split())) B=list(map(int,input().split())) ans=[] a=0 b=0 while a!=len(A) or b!=len(B): if a==len(A): ans.append(B[b]) b+=1 elif ..
-
로직을 UI로부터 분리하는 MVVM Architecture PatternWeb 2021. 6. 24. 11:20
MVVM 패턴은 MVC 패턴과 마찬가지로 소프트웨어 아키텍처를 나타내는 패턴이다 MVC 패턴은 소프트웨어 아키텍처가 Mode-View-Controller로 분리됨으로써 유연하고 확장성 좋은 구조로 개발하기 용이해졌지만, 사용자에게 보여지는 실제 View에 대한 처리도 서버에서 부담해야 했다. 이러한 단점을 보완하여 사용자 인터페이스를 백엔드 로직에서 분리시킴으로써 뷰가 특정 플랫폼에 종속되지 않도록 개선한 모델이 MVVM 패턴이다. Spring MVC로 개발을 할 경우, controller에서 view를 반환할 때 ViewResolver가 논리적 view name에 path 경로와 jsp 확장자를 연결하고 반환하여 플랫폼이 웹에 제한된다는 단점이 있었다. 이를 개선하여, 아예 View에 대한 처리를 Vi..