전체 글279 [Android] Android에서 BottomSheetDialogFragment의 높이를 최대 높이로 설정하기 내일배움캠프 최종 프로젝트 기록 2 서론이번에는 UI 개발을 할 차례이다.나는 UI개발에서 마이페이지에 사용하는 bottomSheet들의 UI 구성을 맡았다.그리고 이미 구현되어 있는 bottomSheet 틀을 사용해서 구현할 것이다.sheet 틀은 xml로 이미 구현되어 있고, content 부분만 따로 xml로 구현해서 붙여주는 작업을 진행했다.bottomSheet UI의 height 설정 부분에서 삽질을 했던 과정을 글로 적어 보겠다. BottomSheet를 최대 높이로 설정해서 만들기기존에는 BottomSheet를 최대 높이로 설정해서 띄우려면 BottomSheetBehavior를 사용해야 했다.원래 BottomSheetBehavior를 사용해도 되지만, bottomSheetDialogFrag.. 2024. 8. 27. [Kotlin, S3] 백준 13305번 주유소 주유소(13305번)Silver 3#그리디 알고리즘https://www.acmicpc.net/problem/13305 문제 내용 문제 접근이 사진에서 원 안의 수가 1L당 기름의 값이고 원 사이의 연결된 선이 도시 간 도로의 길이일 때, 적은 기름값으로 첫 번째 도시에서 마지막 도시까지 이동할 수 있는 경우를 구해야 한다.위 예제에서는 5원짜리 2L를 첫 번째 도시에서 구매해 주고, 2원짜리 4L를 두 번째 도시에서 구한다. 4L로 2, 3번째 도로를 지날 수 있다. 그래서 정답은 18이다. 가장 적은 기름값이 들어야 하기 때문에 기름값이 이동하면서 증가하면 안 된다.세 번째 경우에는 원래는 1L당 4원이 필요하지만 이전 도시의 2원이 더 저렴하기 때문에 2원만 쓰고도 3번째 도로를 이용할 수 있다.다.. 2024. 8. 27. [Android] 공부일지(2024-08-26) 오늘 공부한 내용 정리(2024년 8월 26일) 알고리즘 문제풀이연속합(Silver 2, 1912번)https://rkdrkd-history.tistory.com/219 [Kotlin, S2] 백준 1912번 연속합연속합(1912번)Silver 2#다이나믹 프로그래밍https://www.acmicpc.net/problem/1912 문제 내용 문제 접근정수들이 주어지면, 연속된 정수의 합 중의 최댓값을 찾아서 출력한다.시간제한이 1초이고, 정수는 1rkdrkd-history.tistory.com 부트캠프 최종 팀 프로젝트최종 팀 프로젝트 초기 세팅공부 내용 간단 정리https://rkdrkd-history.tistory.com/218 [Android] Android의 Gitignore 설정으로 com.. 2024. 8. 26. [Kotlin, S2] 백준 1912번 연속합 연속합(1912번)Silver 2#다이나믹 프로그래밍https://www.acmicpc.net/problem/1912 문제 내용 문제 접근정수들이 주어지면, 연속된 정수의 합 중의 최댓값을 찾아서 출력한다.시간제한이 1초이고, 정수는 10만 개까지 들어오기 때문에 다이나믹 프로그래밍이 강제된다.이 문제를 다이나믹 프로그래밍으로 풀기 위해서는 어떻게 해야 할까? 입력 예제 1을 예로 들어 보겠다.1010 -4 3 1 5 6 -35 12 21 -1정수를 하나씩 보면서 최댓값을 찾아보자. 첫 번째 수는 10이기 때문에 연속된 수의 합은 10이다.두 번째 수는 -4이다. 연속된 수의 합은 6이다. 6과 -4중에 6이 더 크다.세 번째 수는 3이다. 연속된 수의 합은 9이다. 9와 3중에 9가 더 크다.네 번째.. 2024. 8. 26. [Android] Android의 Gitignore 설정으로 commit 제한하기 내일배움캠프 최종 프로젝트 기록 1 서론이제 기획이 어느 정도 마무리되고 본격적으로 개발을 시작한다.프로젝트의 주제는 cosmic detox로, 우주를 콘셉트로 하는 디지털 디톡스 앱을 만들기로 했다.그전에 먼저 초기 세팅을 진행하고 있다. 내가 맡은 초기 세팅은 패키지 구성 및 gitignore 설정, firebase와의 연결이다.그중에서 gitignore 설정 관련해서 포스팅을 남겨 보려 한다.이 포스팅에는 gitignore 설정 및 적용 방법을 적어 보겠다. Gitignore.gitignore 파일은 commit 되는 모든 파일들 중에 특정한 파일들을 commit에서 제외시켜 버리는 역할을 하는 파일이다.gitignore 파일을 이용해 프로젝트에서 안 쓰이는 파일들을 제외시켜서 버전 관리를 용이.. 2024. 8. 26. [Kotlin, S2] 백준 2716번 원숭이 매달기 원숭이 매달기(2716번)Silver 2#자료 구조 #트리 #스택 문제 내용 문제 접근입력은 오직 대괄호만 주어진다. 대괄호가 있으면 덩굴이 2개로 분리되는 것이다.각 덩굴에는 동일한 수의 원숭이가 있어야 한다.덩굴은 2개로만 나누어질 수 있다.위 문제의 그림을 보면 각 덩굴 수에 맞는 원숭이들이 매달려 있다. 첫 번째 덩굴의 원숭이 수는 각 덩굴에 4마리씩이다(2+ 2, 1 + 1 + 2).오른쪽의 덩굴의 원숭이 수는 각 덩굴에 2마리씩이다(1 + 1, 2).각 덩굴의 depth가 깊어질수록 필요한 원숭이의 수가 2배씩 늘어나게 된다. 덩굴은 무조건 2개씩으로만 나누어지기 때문에 한 덩굴의 depth가 깊어질수록 다른 덩굴도 깊어진 덩굴의 depth에 따라 늘어난 원숭이 수에 맞게 원숭이를 추가해 줘.. 2024. 8. 25. [Android] 공부일지(2024-08-23) 오늘 공부한 내용 정리(2024년 8월 23일) 코드카타 문제풀이회문인 수(Silver 5, 11068번)https://rkdrkd-history.tistory.com/214 [Kotlin, S5] 백준 11068번 회문인 수회문인 수(11068번)Silver 5#수학 #브루트포스 알고리즘https://www.acmicpc.net/problem/11068 문제 내용 문제 접근10진수인 숫자를 입력받을 때, 2진법부터 64진법까지 수를 변환할 때, 변환한 수가 팰린드rkdrkd-history.tistory.com CPU(Silver 5, 16506번)https://rkdrkd-history.tistory.com/215 [Kotlin] 백준 16506번 CPUCPU(16506번)Silver 5#구현 문.. 2024. 8. 23. [Kotlin] 백준 16506번 CPU CPU(16506번)Silver 5#구현 문제 내용 문제 접근위 표를 참고해서 opcode, rD, rA, rB(#C)가 주어질 때, 문제에 정의된 번역 방법으로 어셈블리어를 번역해서 기계어로 출력한다.각 문제에 필요한 조건들이 뭐가 있는지 정리해 보겠다. 기계어는 총 16개의 0과 1로 이루어져 있다.16개의 수들이 적용되는 조건은 다음과 같다. 1. 0~3번째까지의 수는 opcode에 맞게 구성해 주면 된다. 위 표 참고.2. 4번째 수는 opcode가 C로 끝나면 1, 아니면 03. 5번째 수는 0 고정.4. 6~8번째 수는 rD의 2진수값.5. 9~11번째 수는 rA의 2진수값, NOT의 경우는 0 고정.6.12~15번째 수는 opcode가 C로 끝날 때는 #C의 2진수값, 아니면 rB의 2진수.. 2024. 8. 23. [Kotlin, S5] 백준 11068번 회문인 수 회문인 수(11068번)Silver 5#수학 #브루트포스 알고리즘https://www.acmicpc.net/problem/11068 문제 내용 문제 접근10진수인 숫자를 입력받을 때, 2진법부터 64진법까지 수를 변환할 때, 변환한 수가 팰린드롬(회문)이면 1을 출력. 아니면 0을 출력하는 문제이다.Kotlin에서 진법 변환을 쉽게 하는 방법은 toString(N), toInt(N)을 쓰는 방법이다.하지만 toString, toInt로 날먹할 수가 없다. 왜냐하면 toString, toInt를 쓰면 아래와 같은 오류가 발생하기 때문이다.Exception in thread "main" java.lang.IllegalArgumentException: radix 37 was not in valid range.. 2024. 8. 23. [Android, 내일배움캠프] 공부일지(2024-08-22) 오늘 공부한 내용 정리(2024년 8월 22일) 코드카타 문제풀이Africa(Bronze 1, 15629번)https://rkdrkd-history.tistory.com/212 [Kotlin, B1] 백준 15629번 AfricaAfrica(15629번)Bronze 1#구현 문제 내용문제 본문더보기라이언의 고향은 아프리카의 어느 섬이라고 한다. 사자의 서식지는 주로 아프리카의 초원지대로 알려져 있는데, 아쉽게도 아프리카의 섬 중rkdrkd-history.tistory.com 부트캠프 최종 팀 프로젝트팀장, 부팀장 온보딩 강의초반에 가장 중요한 것.1. 기획은 어떤 방향성인가?2. 기획 함께 수립하기.팀장, 부팀장이 어느 정도 아이디어를 세워둔 것이 있어도 기획은 함께 해야 하는 것 기획에는 사용할 기.. 2024. 8. 22. [Kotlin, B1] 백준 15629번 Africa Africa(15629번)Bronze 1#구현 문제 내용문제 본문더보기라이언의 고향은 아프리카의 어느 섬이라고 한다. 사자의 서식지는 주로 아프리카의 초원지대로 알려져 있는데, 아쉽게도 아프리카의 섬 중 사자의 서식지 또는 과거에 사자가 서식했던 지역은 없기 때문에 라이언의 고향이 섬이라는 것은 누군가의 착각에 의해 잘못 알려졌을 가능성이 높다. 사실 아프리카 내에 바다로 생각할 만큼 매우 큰 호수가 많아서 섬이었던 걸로 오해했을 가능성도 있다. 아프리카 내의 여러 호수 중 가장 큰 호수는 빅토리아 호로, 동아프리카의 세 나라인 우간다, 케냐, 탄자니아에 걸쳐 있다. 역시 케냐와 탄자니아의 국경에 걸쳐 있는 세렝게티 지역과 거의 맞닿아 있다. 세렝게티는 3만 제곱 킬로미터가 넘는 땅으로 초원 지역과 사바.. 2024. 8. 22. [Android, 내일배움캠프] 공부일지(2024-08-21) 오늘 공부한 내용 정리(2024년 8월 21일) 코드카타 문제풀이트리 순회(Silver 1, 1991번)https://rkdrkd-history.tistory.com/210 [Kotlin, S1] 백준 1991번 트리 순회트리 순회(1991번)Silver 1#트리 #재귀https://www.acmicpc.net/problem/1991 문제 내용 문제 접근입력값을 기반으로 트리를 만들어서 전위, 중위, 후위 순회를 한 결과를 출력해야 한다.트리 문제가 생소한rkdrkd-history.tistory.com 부트캠프 활동면접 이론 학습 7일 차크롬 브라우저에서 한 탭에 오류가 생기더라도, 다른 탭에 영향을 미치지 않는다. 그렇다면 각각의 크롬 탭은 프로세스인가, 스레드인가?크롬은 여러 개의 자식 프로세스.. 2024. 8. 21. [Kotlin, S1] 백준 1991번 트리 순회 트리 순회(1991번)Silver 1#트리 #재귀https://www.acmicpc.net/problem/1991 문제 내용 문제 접근입력값을 기반으로 트리를 만들어서 전위, 중위, 후위 순회를 한 결과를 출력해야 한다.트리 문제가 생소한 사람들을 트리를 어떻게 구성해야 하는지부터 난감할 것이다. 내가 그랬다.트리 구성은 문제 본문에 나와 있는 것 그대로 구성해 볼 생각이다.먼저 한 노드의 정보를 표시할 Node 데이터를 구성해 줄 것이다. node에는 value와 left, right 데이터가 존재하도록 구현한다.private data class Node( val value: String, var left: Node?, var right: Node?,)left와 right는 하위 No.. 2024. 8. 21. [Kotlin, 내일배움캠프] 공부일지(2024-08-20) 오늘 공부한 내용 정리(2024년 8월 20일) 코드카타 문제풀이터렛(Silver 3, 1002번)https://rkdrkd-history.tistory.com/207 [Kotlin, S3] 백준 1002번 터렛터렛(1002번)Silver 3#수학 #기하학 #많은 조건 분기https://www.acmicpc.net/problem/1002 문제 내용 문제 접근입력 형식을 보면 터렛의 좌표와 마린과의 거리가 나온다. 이를 이용해 원을 이용하는 문제임rkdrkd-history.tistory.com 01타일(Silver 3, 1904번)https://rkdrkd-history.tistory.com/208 [Kotlin, S3] 백준 1904번 01타일01타일(1904번)Silver 3#다이나믹 프로그래밍h.. 2024. 8. 20. [Kotlin, S3] 백준 1904번 01타일 01타일(1904번)Silver 3#다이나믹 프로그래밍https://www.acmicpc.net/problem/1904 문제 내용 문제 접근타일의 구성이 00, 1로 총 2가지가 존재한다. 타일들로 구성해야 하는 자릿수가 N일 때 타일 2종류를 무한대로 사용해서 자릿수가 N인 수를 만들어야 한다.문제 설명에서처럼 N이 4일 때는 0011, 0000, 1001, 1100, 1111 총 5가지의 경우의 수가 존재한다. 먼저 N의 개수에 따라 경우의 수가 몇 개인지 일일이 세서 알아내 보자.위의 표는 자릿수(N)에 따른 00, 1로 나타낼 수 있는 N자리의 수들을 나열한 것이다.어떤 규칙이 보이게 된다.바로 피보나치수열과 동일한 규칙으로 개수가 증가하는 것을 볼 수 있다.N이 3이 될 때부터 피보나치수열을 .. 2024. 8. 20. [Kotlin, S3] 백준 1002번 터렛 터렛(1002번)Silver 3#수학 #기하학 #많은 조건 분기https://www.acmicpc.net/problem/1002 문제 내용 문제 접근입력 형식을 보면 터렛의 좌표와 마린과의 거리가 나온다. 이를 이용해 원을 이용하는 문제임을 유추할 수 있다.입력 예제 1의 첫 번째 case를 확인해 보자.0 0 13 40 0 37첫 번째 터렛의 좌표가 0, 0이고 마린과의 거리가 13이므로 반지름이 13인 원이라고 생각하면 된다. 첫 번째 터렛을 기준으로 다음과 같이 원을 구성하면 원의 둘레에 해당하는 부분들이 모두 마린이 있을 수 있는 경우의 수인 것이다.두 번째 터렛도 구성해 보자. 두 번째 터렛은 좌표가 40, 0이고 마린과의 거리는 37이다. 두 번째 원은 다음과 같이 구성된다. 그럼 첫 번째 .. 2024. 8. 20. [Android, Kotlin] 공부일지(2024-08-19) 오늘 공부한 내용 정리(2024년 8월 19일) 코드카타 문제풀이풍선 터뜨리기(Silver 3, 2346번)https://rkdrkd-history.tistory.com/203 [Kotlin, S3] 백준 2346번 풍선 터뜨리기풍선 터뜨리기(2346번)Silver 3#자료 구조 #덱https://www.acmicpc.net/problem/2346 문제 내용 문제 접근입력 순서대로 풍선 안에 들어있는 종이에 적혀 있는 숫자가 입력으로 주어지고, 종이에 입력된 수rkdrkd-history.tistory.com 어린 왕자(Silver 3, 1004번)https://rkdrkd-history.tistory.com/205 [Kotlin, S3] 백준 1004번 어린 왕자어린 왕자(1004번)Silver 3.. 2024. 8. 19. [Kotlin, S3] 백준 1004번 어린 왕자 어린 왕자(1004번)Silver 3#수학 #기하학 문제 내용 문제 접근시작 좌표와 끝 좌표가 주어지고, 행성계의 중심 좌표와 행성계의 반지름이 주어질 때, 시작 좌표에서 끝 좌표로 이동하면서 진입 또는 이탈하는 행성계의 개수를 구해야 한다.행성계는 반지름과 중심 좌표가 주어진다. 시작 좌표와 행성계의 중심좌표 간의 거리와 끝 좌표와 행성계의 중심 좌표 간의 거리를 이용해 해당 행성계를 무조건 지나야 하는지 아니면 안 지나가도 상관없는지 알 수 있다. 시작 좌표와 행성계의 중심 좌표 간의 거리를 distanceStart, 끝 좌표와 행성계의 중심 좌표 간의 거리를 distanceEnd라고 할 때행성계와 시작, 끝 좌표 간의 관계가 3가지가 나올 것이다. distanceStart와 distanceEnd.. 2024. 8. 19. [Android] RecyclerView의 Infinite scroll 적용하기 (2) 내일배움캠프 앱 개발 심화 팀 프로젝트 서론대부분의 API들은 수많은 검색결과를 불러와야 할 때, 한 번에 불러오는 게 아닌, page query 파라미터를 추가로 이용해서 조금씩 데이터를 불러오도록 처리한다.이런 형식으로 데이터를 불러오는 이유는 많은 데이터를 여러 페이지로 나누어서 로딩 속도를 개선하고 사용성을 좋게 하기 위해서이다.이는 기본적인 내용이긴 하지만 그냥 써봤다. page 파라미터로 나뉘어 있는 검색결과들을 Android에 무한 스크롤을 적용해서 끝없는 데이터를 계속 불러올 수 있도록 만들어 보자. 무한 스크롤무한 스크롤은 우리가 자주 사용하는 instagram, youtube처럼 스크롤을 계속 내려도 데이터가 계속 나오는 것을 뜻한다.무한 스크롤을 구현하기 위해서는 첫 데이터가 re.. 2024. 8. 19. [Kotlin, S3] 백준 2346번 풍선 터뜨리기 풍선 터뜨리기(2346번)Silver 3#자료 구조 #덱https://www.acmicpc.net/problem/2346 문제 내용 문제 접근입력 순서대로 풍선 안에 들어있는 종이에 적혀 있는 숫자가 입력으로 주어지고, 종이에 입력된 수만큼 이동해서 다른 풍선을 터뜨려야 한다. 종이의 숫자가 양수면 다음 번호 방향으로 움직이고, 음수면 이전 방향으로 움직인다. 터진 풍선에 쓰인 종이는 재사용하지 않는다.입력 예제 1을 예로 들어 보면53 2 1 -3 -11번째 풍선인 종이에 3이 적힌 풍선을 터뜨렸으면, 양수이기 때문에 4번째 풍선을 터뜨려야 한다. 4번째 풍선은 음수이기 때문에 왼쪽 방향으로 이동한다. 2까지 이동했으면 2번 이동한 것이다. 2 이전의 값인 3은 이미 터져서 사용했기 때문에 이 때는 .. 2024. 8. 19. [Kotlin, S5] 백준 30010번 잘못된 버블정렬 잘못된 버블정렬(30010번)Silver 5#애드 혹 #해 구성하기https://www.acmicpc.net/problem/30010 문제 내용 문제 접근위 문제에 잘못된 방식으로 구현된 버블 정렬 함수가 있다.이 함수를 이용해 버블 정렬을 했을 때, 올바르게 정렬되지 않는 리스트를 출력하면 된다. 먼저 버블 정렬이 어떻게 이루어지는지 알아야 한다.버블 정렬은 현재 위치에서 자신의 앞의 값을 확인해서 자신보다 값이 작을 경우 서로의 값을 교환하는 방식으로 구현을 한다.물론 1번의 사이클로는 정렬이 바로 안 되는 경우가 많기 때문에 정렬할 List의 크기만큼 반복해 주면 정렬을 마칠 수 있다. size가 5인 List를 4번의 사이클을 돌아 정렬을 완료한 부분이다.현재 자신의 앞의 값을 확인하고 있기 때.. 2024. 8. 17. 이전 1 2 3 4 5 6 7 ··· 14 다음 728x90 반응형