분류 전체보기 101

배낭 알고리즘

n개의 물건과 배낭이 있고, 물겅에는 가치와 무게 값이 존재한다. 배낭에는 최대 용량이 존재하고 이 용량 안에서 담을 수 있는 물건의 최대 가치를 찾는다. 다이나믹 프로그래밍 , 즉 큰 문제를 작은 문제로 쪼개 푸는 것으로 해결 가능하다.dp는 이차원 배열로 작성하고 dp [ 현재 탐색하는 물건 ] [ 가방의 남은 공간 ] = 최대 가치 가방 최대 5키로0 번 물건/3kg1번 물건2 번 물건3 번 물건4 번 물건0키로     1키로     3키로     4키로     5키로      이런 형태의 표를 생각 할 수 있다 ..d[1][6] 은 1번 물건을 담으려 하는데 남은 공간이 6키로라는 의미다.1번 물건이 3키로에 3달러라 했을 때, 배낭의 최대 가치는 d[i][3] 중 최대 값 +3 달러 일 것이다...

백준 문풀 2024.11.09

백준 2656 전깃줄

문제를 있는 그대로 받아들여서 교차점이 제일 많은 전깃줄부터 제거하여 문제를 풀려 했지만 교차점이 같은 전깃줄에서 어느 것을 먼제 제거할지 결정하기가 어려웠다..결국 서치하여 알아낸 것은문제 풀이 방법이 증가하는 가장 긴 부분 수열을 구하는 문제라는 것!  왼쪽 전봇대와 오른쪽 전봇대를 볼 때, 왼쪽에서 출발하는 전깃줄이 도착하는 오른쪽 전봇대의 인덱스를 나열하여, 그중에서 제일 긴 증가하는 부분수열을 구하면 되는 문제였다.. 가장 긴 증가하는 부분 수열을 구하는 방법은?dp 배열을 이용한다.dp[a]=b의 의미는 a번째 값이 가지는 가장 긴 증가하는 부분 수열의 길이는 b이다. 라는 의미임  정렬되지 않은 순서로 입력이 주어질 수 있으므로 저장한 값을 먼저 정렬해주고, dp 배열에 값을 할당한다. #i..

백준 문풀 2024.11.05

백준 1920 수 찾기

#include#include#includeusing namespace std;vector a;void find(int s, int e, long long i) { int mid = (s + e) / 2; if (e i) { find(s, mid-1, i); } if (a[mid] > n; for (int i=0; i > k; a.push_back(k); } cin >> m; sort(a.begin(), a.end()); for (int j = 0; j > k; find(0, a.size()-1, k); } return 0;}배열에 원소를 삽입하고 find 함수를 작성하여 그 안에서 이분탐색을 진행하였다. end>start인 경우에는 정답을 찾지 못한 것이므로 0을 출력, a[mid]가 찾던 값인..

백준 문풀 2024.09.30

백준 2110 공유기 설치

공유기 설치  이분 탐색을 이용하여야 한다는 생각을 가지고도 어떻게 문제에 접근해야할지 감이 오지 않아서 블로그 글들을 조금 참고하여 코드를 짰다!... 1. 맨 처음 집에는 무조건 공유기가 설치된다.2. 왼쪽에서 오른쪽 방향으로 공유기가 설치된다. 3. 공유기의 설치 가능한 최소 거리는 1이다. 이 세가지를 중심으로 코드를 짰다.int wifi(int start, int end) { int result = 0;//가장 긴 거리 중 최솟값 while (start = mid) { cnt++; prev_house = house[i]; } } if (cnt >= w) { result = mid; start= mid+1; } //거리를 크게해서 조금 설치 가능; if (cnt re..

백준 문풀 2024.09.30

Bfs Dfs

c++으로 깊이 우선 탐색을 구현하는 방법과 너비 우선 탐색을 구현하는 방법이 어려워서 정리를 해본다.. DFS는 깊이 우선 탐색으로 재귀함수나 스택으로 구현한다. 1. 탐색 노드를 스택에 삽입하고 방문 리스트에 표시.2. 스택 최상단 노드에 인접한 노드중 방문하지 않은 노드가 존재한다면 그 노드를 스택에 넣고 방문한다.   인접노드를 모두 방문했다면 최상단 노드를 꺼낸다.3. 2번 과정을 계속 반복한다. ** 방문 리스트로 검사를 꼭 해줘야 무한 반복에 빠지지 않는다!!** 스택은 후입선출의 구조이므로 늦게 들어간 노드가 최상단 노드가 됨을 기억하자!===============================================================================Bfs는 너비..

백준 문풀 2024.09.23

안드로이드 주사위 만들기

주사위 굴리는 앱 만들기!가장 먼저.. 바탕이 될 디자인부터 꾸며준다 바탕 화면의 색을 지정해준다 색을 바꾸고 싶은 경우 그 색상의 hex 번호를 알아야한다.색상을 코드에 입력할 때 앞에 #을 붙이는것에 주의한다!마음에 드는 녹색으로 배경을 깔아 주었다. 안에 레이아웃을 하나 생성해주고 그 속에 텍스트 뷰 박스를 하나 더 생성해준다여러가지 속성들을 설정해줄 수 있다.android:gravity="center"는 내용물을 가운데 정렬 해주는 코드이고android:layout_gravity="center"는 해당 레이아웃의 테두리를 가운데정렬 해주는 코드라 보면 된다. 아래에 레이아웃을 하나 더 생성해주고 주사위의 이미지를 넣어줄 것이다. 이미지에 크기를 반씩 할당해주고 싶었다이렇게 하기 위해서 androi..

안드로이드 2024.09.20

안드로이드 3강

트와이스 앱 만들기그치만 트와이스 사진이 ㅂㄹ 땡기지 않음.. bts한번 만들어보니까 사진은 걍 내 맘에 드는거 쓰면 될듯 뉴>뉴프로젝트>엠티 뷰 엑티비티로 새 프로젝트 생성 먼저 스플래시 화면을 표현해 줄거다그러러면 새로운 엑티비티 파일이 필요하다 생성을 해주면 일단 메인 엑티비티가 먼저 보이게 되어있다 이 설정부터 먼저 해주겠다app 폴더 아래 manifast 파일로 이동해준다 메인 액티비티 아래에 intent filter라는 태그가 있는데 이를 잘라서 바로 스플래시에 붙여넣어준다 android:exportedtrue 로 되어있으면 앱에서 접근이 가능하고 false면 접근이 불가능하단다.. 자꾸 오류가 나서 우울했는데 이유를 앎main 의 exported 속성을 false 로 해줬는데 실행 잘 되니까..

안드로이드 2024.09.17

안드로이드 2주차

조금 재밋을 것 같다 기대된다.ㅋㅋ bts앱을 만들어야 한다.. 하지만 난 방탄을 그렇게 조아하지 않는다.. 그럼 멀 만들까아 강의 자료에 넣어 두셧다.. 하지마 ㄴ쓰기 싫타 하지만 해봐야겟다..아 웃겨 !! 여태 레이아웃 페이지가 보이지 않았던 것은 empty 로 새 프로젝트를 생성해서 그럼.. empty view로 선택해 줘야 레이아웃이 보인다!!드디어 보이게 된... 감격스럽다메인 엑티비티에는 주요 코드를 작성하고 xml파일은 대충 화면이 보여지는 곳임 일단 방탄의 사진이 이 프로젝트 안에 존재 해야 한다.사진을 넣어줄 건데 res 아래에 drawable폴더가 있다.  드래그앤 드롭으로 넣어 줄 수 있다 지금 래이아웃은 ConstraintLayout 인데 이걸 다른 걸로 바꿔준다. Linear La..

안드로이드 2024.09.16

안드로이드 1주차

new->empty views activity로 프로젝트 생성언어를 자바가 아니고 코틀린으로 사용함에 유의할 것안드로이드 스튜디오가 업데이트되면서 추가된 문장들 지우고 실습하면 된다.  업데이트 전 어플 화면에 타이틀바가 보였는데 보이지 않게 업데이트 되었다...(타이틀 바를 지우는 작업을 하지 않아도 됨!)  시작..!! 새 프로젝트로 들어간다  모바일용 앱을 만들것이기 때문에 폰& 태블릿 쪽에서 봐준다.  시작은 우선 empty 로 시작해본다..!!   네임은 이름, 패키지 네임은 주민번호 정도로 생각해주면 된다.sdk는 소프트웨어 개발 키트임.   첫 프로젝트 빌드 완료!!mainactivity 은 보여지는 화면을 제어하는 부분임.  actvity_main.xml은 보여질 화면을 볼 수 있는데,, ..

안드로이드 2024.09.13