본문 바로가기

분류 전체보기67

Android Studio 리사이클러뷰 생성 (Kotlin) 리사이클러뷰는 리스트뷰와 유사하지만 보다 더 유연하다는 점에 있어서 자주 쓰이고 있다. 리사이클러뷰를 만들기 전에 꼭 build.gradle에 추가해줘야 할 코드가 있다. implementation 'androidx.recyclerview:recyclerview:1.1.0' dependencies에 꼭 추가해주어야 한다. 본격적으로, 리사이클러뷰 생성 방법에 대해 말해보자면 가장 먼저 해야할 것은 리사이클러뷰 배치 및 아이템 레이아웃 구성이다. 1. 먼저, 리사이클러뷰를 배치해야할 뷰에 RecyclerView를 구성한다. 본인이 원하는 구성대로 알맞게 배치시키면 된다. 2. 그 후 리사이클러뷰 내부에 들어갈 item 레이아웃(xml)을 구성한다. 여기까지 리사이클러뷰 UI 레이아웃을 모두 구성한 것이다... 2020. 7. 23.
Android Studio 팝업창 만들기 팝업창을 만드는 방법으로 여러가지 방법이 있는데, 이 포스팅에서 쓸 방법은 팝업 액티비티의 뒷 배경을 반투명하게 하여, 팝업창이 띄워지는 것처럼 보이도록 하는 방법이다. 1. 먼저, 팝업창을 만들 때 일반 Activity를 만들 듯이 똑같이 팝업 Activity를 만든다. 그 후 Activity를 구성한다라는 생각으로 팝업 xml 파일에 레이아웃을 구성시키면 된다. 이 때 팝업 xml 파일 구성시에는 꼭 전체 크기를 match_parent로 하면 안된다. 그렇게 할 경우 일반 화면 전환 식으로 넘어가기 때문에 팝업을 만들 수가 없다. ( ※ 'background=#00FFFFFF'는 안 써도 상관 없음 ) 이제 팝업을 띄울 때 뒷 배경은 대부분 어두운 반투명 배경이므로 그 부분을 만들어야 한다. 2. v.. 2020. 7. 22.
DFS ( 깊이 우선 탐색 ) DFS(Depth First Search) 깊이 우선 탐색은 말 그대로 한 가지 방향으로 깊숙히 들어가는 방법으로 탐색하는 것을 의미한다. DFS는 재귀호출 혹은 스택 배열로 구현할 수 있다. 또한 이 구조 특성상 스택 오버플로우를 가장 주의해야 한다. DFS 말고 다른 탐색 방법을 BFS 가 있는데, BFS는 간단히 말하자면 너비 우선 탐색이다. 둘다 탐색방법만 다르지 탐색 속도나 시간은 비슷할 거라 생각을 할 수 있는데, 단순 검색 속도로만 따지면, DFS가 비교적 더 빠르다. 또한, 저장공간의 수요가 적은 편이다. 한 가지로 깊숙히 들어갔다가, 해당 경로가 아닐 시 쳐내는 탐색이기 때문에, 저장공간 차지가 BFS에 비해서 적다. 2020. 5. 22.
[1260] DFS와 BFS 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 : 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 : 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다... 2020. 5. 22.
[11724] 연결 요소의 개수 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. 출력 : 첫째 줄에 연결 요소의 개수를 출력한다. dfs를 이용한 문제이다. 깊이 우선탐색 문제로, 방문했던 곳은 다시 방문하지 않게끔 해주어야 한다. public class Main{ static int N,M; static int visit[]; static int graph[][]; static void DFS(int .. 2020. 5. 22.
[1026] 보물 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0]*B[0] + ... + A[N-1]*B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 : 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. 출력 : 첫째 줄에 S의 최솟값을 출력한다. 문제를 푸.. 2020. 5. 22.