전체 글 97

명언 앱 만들기 -1

리스트뷰를 사용해서 명언 앱 만들기!  먼저 버튼을 생성해준다.근데 버튼 아래에 빨간 밑줄이 생성된다...크기를 상대적으로 설정해서 기준이 없기 때문! 그냥 100dp처럼 숫자로 명시하면 왼쪽 상단에 부착된다.  match_parent로 부모 크기 맞춰서 생성하면 밑줄은 사라진다.. 헐.... 옆에 뷰어로 요소의 위치 조절이 가능한 것을 지금 알다..android:gravity="center"중앙 정렬도 해주고.. 폰트 설정 !따로 폰트를 사용하기 위해 미리 다운을 받아준다.다운받은 파일 이름이 대문자라면 또 적용이 불가능하기 때문에 이름도 수정해둔다..  res디렉토리 아래 폰트를 저장할 디렉토리를 생성해주고 그 아래로 다운받은 파일을 드래그 앤 드롭 해준다.   이렇게 폰트 패밀리 설정으로 글씨체를 ..

안드로이드 2024.12.16

유니티

PickUp object 태그로 pick up 오브젝트를 명시한다. 이때 대소문자를 구분함에 주의할 것.  ontreggerEnter 함수로 충돌을 감지한다.이때 아이템의 태그명을 비교하여 해당 태그일때 아이템 액티브 설정을 비화성화해준다.  플레이어와 충돌했을 때, 벽과 바닥에서 처럼 튕기지 않기 위해 픽업 오브젝트에 is trigger을 활성화해준다.   유니티에서 물리 계산 시간 단축을 위해 픽업 오브젝트에 rigid body 특성을 추가해준다.콜라이더와 리지드 바디가 적용된 오브젝트는 동적 취급을 받는다.(정적으로 취급하면 계산시간이 더 길어진다고 한다..)정적 콜라이더는 움직이지 않고, 동적 콜라이더는 움직일 수 있고 rigid body를 연결한다  아앗 ㅅㅂrigid body를 적용했더니 큐브..

유니티 2024.11.19

뒤로가기 종료

보통 앱은 뒤로가기 눌러도 종료가 되지 않음but 현재 만든 앱 다 뒤로가기 누르면 종료된다.. 더블클릭해야 종료되도록 설정해주겟다!뒤로가기로 종료를 막는 방법activity에서 onBackPressd 함수 내 super.onBackPressed 부분을 주석처리해준다. ... 그런데 티라미수 버젼부터는 onbackPressed 함수를 쓸 수 없어 OnBackPressedDispatcher를 사용해야한다. 기본 사용 방법은 동일하지만 onBackPressedDispatcher에  callBack을 추가해주어야한다.  더블클릭으로 종료하는 방법뒤로가기 누른 시간을 기억하고 지정 간격 내 한번 더 뒤로가기 클릭시 종료되도록 한다.Back gesture백 제스쳐. 스와이프시 화면이 작아지는 애니메이션으로 앱이 ..

안드로이드 2024.11.15

ListView

리스트 뷰 메인 액티비티에서 어댑터로 정보가 들어간다. 어뎁터에서 리스트 뷰에 값을 하나씩 넣어준다. 일단 리스트 뷰 생성. 아이디를 뷰여해준다. 아직 어댑터가 없기 때문에 어댑터 또한 생성해줘야한다. 메인엑티비티가있는 폴더를 우클릭해 새로운 코틀린 파일을 생성해주고 이름을 어댑터라 해준다. ㅇㅣ 어댑터에서 리스트 문자열 데이터르 ㄹ받아야한다. (뮤터블 리스트): 이게 베이스 어댑터임을 명시해주고 나면 class 아래 빨간 밑줄이 생성되는데 여기서 implement members 를 클릭해주면 짜잔~ count는 리스트뷰의 크기(원소의 개수)get item ,get id 는 신경 안써도 된다.. 이제는 받아올 원소 리스트를 작성해야한다. xml 파일로 리스스트뷰 ..

안드로이드 2024.11.15

백준 9084

흐흑너무 어려웠다경우의 수를 구하는 문제였는데, 뭔가 묘하게 이해가 될까 말까 했다. 현재 금액을 만들 수 있는 가짓 수를 찾는 문제인데 이해하기 쉽게 가정을 해본다.  [동전]번호  1     2      3      4 금액  10   20   30   40  60원을 만들기 위해서는 동전의 개수만큼 루프를 돈다     해당 인덱스의 동전이 만들 수 있는 금액부터 최대액 까지 루프를 돈다.           이 금액을 만들기 위한 가지수는  루프를 돌면서 [금액- 현재 동전의 가치] 만큼씩 더해준다for(동전의 가지수 i)     for(가능한 금액 j)           dp[금액 j] += dp[금약 j - i 번째 동전의 개수] 이런 식의 루프를 형성한다. 제일 중요하다고 생각한 부분은 dp배열..

백준 문풀 2024.11.10

배낭 알고리즘

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