전체 글 97

57일차)알고리즘 문제(거리두기 확인하기, 숫자 카드 나누기, 멀쩡한 사각형),특강 코드 정리(Repository Pattern)-Enum Class, KProperty, Event Bus, compose 1주차

>알고리즘 문제1. 거리두기 확인하기1)문제문제 설명개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다.코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다.대기실은 5개이며, 각 대기실은 5x5 크기입니다.거리두기를 위하여 응시자들 끼리는 맨해튼 거리1가 2 이하로 앉지 말아 주세요.단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있을 경우에는 허용합니다.예를 들어,위 그림처럼 자리 사이에 파티션이 존재한다면 맨해튼 거리가 2여도 거리두기를 지킨 것입니다.위 그림처럼 파티션을 사이에 두고 앉은 경우도 거리두기를 지킨 것입니다.위 그림처럼 자리 사이가 맨해튼 거리 2이고 사이에 빈 테이블..

56일차)알고리즘 문제(마법의 엘리베이터), 해시셋 원소추가 시간복잡도, 특강(livedata, sharedflow, stateflow, Coroutine EventBus, Repository Pattern), 스크럼(ListAdapter에서 notifyDataSetChanged)

>알고리즘 문제1. 문제마법의 세계에 사는 민수는 아주 높은 탑에 살고 있습니다. 탑이 너무 높아서 걸어 다니기 힘든 민수는 마법의 엘리베이터를 만들었습니다. 마법의 엘리베이터의 버튼은 특별합니다. 마법의 엘리베이터에는 -1, +1, -10, +10, -100, +100 등과 같이 절댓값이 10c (c ≥ 0 인 정수) 형태인 정수들이 적힌 버튼이 있습니다. 마법의 엘리베이터의 버튼을 누르면 현재 층 수에 버튼에 적혀 있는 값을 더한 층으로 이동하게 됩니다. 단, 엘리베이터가 위치해 있는 층과 버튼의 값을 더한 결과가 0보다 작으면 엘리베이터는 움직이지 않습니다. 민수의 세계에서는 0층이 가장 아래층이며 엘리베이터는 현재 민수가 있는 층에 있습니다.마법의 엘리베이터를 움직이기 위해서 버튼 한 번당 마법의..

55일차)알고리즘 문제(점찍기),알고리즘 공부(레이지 프로파게이션 세트먼트 트리, 스위핑 알고리즘), 챌린지반 강의(리사이클러뷰, 반응형 디자인), 챌린지반 과제

>알고리즘 문제1. 문제문제 설명좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k, d가 주어질 때 다음과 같이 점을 찍으려 합니다.원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...), y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다.원점과 거리가 d를 넘는 위치에는 점을 찍지 않습니다.예를 들어, k가 2, d가 4인 경우에는 (0, 0), (0, 2), (0, 4), (2, 0), (2, 2), (4, 0) 위치에 점을 찍어 총 6개의 점을 찍습니다.정수 k와 원점과의 거리를 나타내는 정수 d가 주어졌을 때, 점이 총 몇 개 찍히는지 return 하는 solu..

뉴스 리더 앱

1. 구현 기능1)타이틀을 따로 프래그먼트에 리사이클러뷰가 들어간 형태로 구현2)세로화면에선 타이틀 클릭시 화면이 디테일 프래그먼트로 변경3)가로화면에서는 타이틀과 디테일 프래그먼트가 같이 존재하도록 설정4)타이틀을 클릭하면 디테일 프래그먼트로 데이터 전송 2.구현1)NewsItemdata class NewsItem(val title: String, val article: String)-뉴스 제목과 기사내용을 담은 데이터 클래스 2)CustomAdapterclass CustomAdapter(val datas:Array): RecyclerView.Adapter() { interface ItemClick{ fun onClick(str:String) } var itemClick:I..

연락처 리스트앱 구현

1. 구현기능 -연락처 불러오기-여러 뷰홀더를 이용하여 즐겨찾기 여부에 따라 다른 아이템뷰로 연락처 리스트 나타내기-리사이클러뷰 어댑터를 리스트 어댑터 사용하기-전화 걸기 2. 구현1)Contactdata class Contact(val name:String, val num:String, val img: Bitmap?, val starred:Int)-연락처 정보를 담는 데이터 클래스 2)CustomAdapterclass CustomAdapter() : ListAdapter(diffUtil){ interface ItemClick{ fun onClick(tel:String) } var itemClick : ItemClick? = null override fun getItem..

54일차)알고리즘 문제(호텔 대실)

1. 문제문제 설명호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다.예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요.제한사항1 ≤ book_time의 길이 ≤ 1,000book_time[i]는 ["HH:MM", "HH:MM"]의 형태로 이루어진 배열입니다[대실 시작 시각, 대실 종료 시각] 형태입니다.시각은 HH:MM 형태로 24시간 표기법을 따르며, "00:00" 부터 "23:59" 까지로 주어집니다.예약 시각이 자정을 넘어가는 경우는 없습니다.시..

53일차)알고리즘 문제(배달)

>알고리즘 문제1. 문제N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3인 경우의 예시입니다.위 그림에서 1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지는 3 이하의 시간에 배달할 수 있습니다. 그러나 3번 마을까지는 3..

52일차)알고리즘 문제(행렬 테두리 회전하기, 전력망을 둘로 나누기), AppleMarket 과제, MVVM과제 , 특강 정리(View Rendering, ViewBinding, Fragment 데이터 전달, ViewPager2와 TabLayout)

>알고리즘 문제 1. 행렬 테두리 회전하기1)문제rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다.x1 행 y1 열부터 x2 행 y2 열까지의 영역에 해당하는 직사각형에서 테두리에 있는 숫자들을 한 칸씩 시계방향으로 회전합니다.다음은 6 x 6 크기 행렬의 예시입니다.이 행렬에 (2, 2, 5, 4) 회전을 적용하면, 아래 그림과 같이 2행 2열부터 5행 4열까지 영역의 테두리가 시계방향으로 회전합니다. 이때, ..

AppleMarket 구현 과제

@ 과제 링크https://teamsparta.notion.site/Android-de05cc5f0d054de9964f8ad1f116b784 Android 앱개발 숙련 개인 과제 | NotionGoal : 사과마켓 앱 만들기 (feat. 당근마켓)teamsparta.notion.site 2. 설계1) 데이터Item: 인텐트로 주고받기 위해서 Pacelable을 상속받는 Item class를 만든다Items: 데이터들을 저장해둘 오브젝트 클래스를 생성해서 싱글톤 패턴으로 데이터를 관리한다. 2)리사이클러뷰: 아이템들을 목록화 시키기 위함RecyclerviewFragment: 리사이클러뷰를 넣을 프래그먼트. 클릭에 대한 함수를 오버라이드하고 어댑터와 리사이클러뷰를 연결시킴CustomAdapter: 리사이클러..