목록전체 글 (37)
To Developer
기존의 findViewById()을 대체하여 View Binding이 생겼습니다. View Binding 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 먼저 모듈에서 뷰 결합을 사용하겠다고 선언합니다. 뷰 결합 사용 설정 앱의 build.gradle 파일을 엽니다(Gradle Scripts > build.gradle (Module: ~~.app)) android 섹션에 다음과 같이 dataBinding 요소를 추가합니다. android { ... dataBinding { enabled = true } } build.gradle 파일을 변경한 후, 상단의 Sync Now를 반드시 눌러주세요. 다음은 모듈에 포함된 레이아웃을 설정합니다. 레이아웃 설정 앱의 레이아웃 xml 파일을 엽니다..
https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수이고, C는 10^9보다 작거나 같은 음이아닌 정수이고. 둘째 줄에 물건의 무게가 주어진다. 무게도 10^9보다 작거나 같은 자연수이다. www.acmicpc.net Meet in the middle 알고리즘 문제 #include #include using namespace std; typedef long long ll; ll Asum[1 n >> c; for (int i = 0; i > arr[i]; int Asize = 1
https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 투 포인터 문제 소수 검증 효율을 높이는게 더 어려웠다. #include using namespace std; // 제출번호 7944056 // sunhong님 코드 참조 bool is_not_prime[4000001] = { 0 }; int primes[285000] = { 0 }; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; for (int i = 3; i * i
https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N > N >> S; for (int i = 0; i > arr[i]; int..
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 투 포인터 기초 문제 #include #include using namespace std; int arr[100000]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; for (int i = 0; i > arr[i]; sor..
https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i > n; for (int i = 0; i >..
다익스트라 알고리즘은 시작점에서 다른 모든 정점으로의 최단거리를 구하는 방법이다. 이 방식은 동적 계획법에 기반하여, 다음과 같은 발상에서 시작된다. P에서 R로 가는 최단경로에 사이에 정점 Q가 있다. 이때 이 경로는 마찬가지로 P에서 Q로 가는 최단경로이다. 즉, P->Q까지의 최단경로에, Q->R로 가는 최단경로를 붙여, P->Q->R의 최단경로가 만들어진다. 서론은 여기까지, 알고리즘의 구조를 알아보자. 순서는 이러하다. 시작점을 정한다. 모든 정점을 미방문집합에 넣는다. 시작점으로부터의 거리를 초기화한다. 시작점은 0, 다른 모든 정점은 무한대 미방문집합 중 최단 거리의 정점을 선택한다. 해당 정점을 미방문집합에서 빼고, 현재위치로 한다. 현재위치와 연결된 간선을 따라, 최단 거리를 갱신한다. ..
https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net 첫번째 방법으로 플로이드 와셜 알고리즘을 사용하면 쉽게 풀 수 있다. 와셜 알고리즘의 시간 복잡도는 O(V^3)이다. 두번째 방법은 다익스트라 알고리즘의 변형으로 우선순위 큐에 경로를 저장하는 방법이다. 경로에 간선을 이어붙여 확장하는 방식으로, 경로가 시작점으로 돌아올 때 그 경로는 사이클이다. 우선순위 큐에 경로를 저장하므로, 처음으로 발견하는 사이클이 최단 ..