분류 전체보기

문제 세준이는 크기가 N*M인 직사각형 도시에 살고 있다. 또, 세준이의 집은 (1, 1)에 있고, 학원은 (N, M)에 있고, 오락실이 C개 있다. 세준이의 현재 위치가 (r, c) 일 때, (r+1, c) 또는 (r, c+1)로만 이동할 수 있다. 오락실을 방문할 때는 규칙이 하나 있는데, 오락실 번호가 증가하는 순서대로 가야 한다는 것이다. 2번 오락실을 먼저 가고, 그 후에 1번 오락실을 가면 안 되고, 2번 오락실을 가려면, 그전에 아무 오락실도 가지 않거나, 1번 오락실을 방문했을 때만 가능하다. 세준이는 오락실을 K번 방문해서 학원에서 도착하는 경로의 경우의 수가 궁금해지기 시작했다. 오락실을 0개 방문했을 때부터, C개 방문했을 때 까지 경우의 수를 출력하는 프로그램을 작성하시오. 입력 첫..
📕문제 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 구두쇠라서 최소한의 소들을 만나면서 지나가고 싶습니다. 농부 현서에게는 지도가 있습니다. N (1 > a >> b >> c; graph[a].push_back(make_pair(b, c)); // a -> b 의 값은 c 라는 뜻 , 기본적으로 undirect graph라서. 모두 처리 graph[b].push_back(make_pair(a, c)); } pq.push(make_pair(1,0)); funct(1); cout cost+nextcost){ // 비용 업데이트 해주기. dist[next]=cost+ne..
안드로이드 개발을 시작하고 꽤 많은 코드에서 Context를 명시하라는 조건이 있었다. Context가 사전적 의미로 대충 문맥, 맥락 이런 뜻이기에 그냥 현재 Activity를 의미하는 줄 알았다. 하지만 자세히 파보니 Context가 단순 현재 Activity만을 의미하는 것이 아닌 것을 알게 되었고, 계속 공부를 할수록 Context를 명시해야 하는 코드가 많아지기에(ViewModel Observable 등등..), 개념을 정확히 이해할 필요성이 있어서 정리하려고 합니다.! 💡안드로이드에서의 Context Context란 단어 그대로 맥락을 의미하며, 현재의 상태를 나타낸다고 이해하면 편할 거 같습니다 Context에 대한 중요한 몇 가지 사실 들 애플리케이션의 현재 상태를 Context를 통해 표..
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔎문제 해석 문제에서 목표는 2가지 있습니다. 이모티콘 플러스 서비스 가입자를 최대로 하는 것 이모티콘 판매액을 최대한 늘리는 것. 여기서 1번 목표를 최우선시로 하고, 그다음 목표가 2번입니다. 이모티콘의 할인률은 정해져 있습니다. 10%, 20% , 30%, 40% 각 이모티콘의 할인율을 조정해서, 우리는 최대한 많은 서비스 가입자를 모아야 합니다. 판매금액도 최대로 해야 하구요 ..
Live Data는 MVVM패턴의 구성요소인 ViewModel에서 많이 사용되는 데이터 형식입니다. Live Data는 Android Jetpack에 포함되어 있는 라이브러리입니다. 공식문서에는 설명이 어렵게 되어 있어서 제 주관적으로 해석한 글입니다. (제 주관이 싫다면 뒤로 가기를 살포시 눌러주셍) 우선 Live Data는 observable data holer class입니다. 쉽게 설명하면 망보는 사람입니다. 이걸 안드로이드에서 적용해 보면 데이터가 변경되는지 감시하고 있다가 UI 컨트롤러(Activity, Fragment)들에게 알려줍니다. 그러면 UI 컨트롤러는 변경사항을 가지고 UI를 업데이트합니다. 감시자가 나는 원하지도 않는데, 계속 뭐뭐뭐 바뀌었다~ 이렇게 하면 듣는 사람들도 피곤하지 ..
이번 글에서는 MVVM 패턴에서 빠질 수 없는 요소인 ViewModel에 대해서 공부해 본 걸 정리할까(?) 합니다. 자세한 내용과 코드는 공식문서에 있으므로, 공식문서를 참고하시면 될 것 같습니다.. (제가 편한대로 정리하기 때문) ViewModel이란? 액티비티와 프래그먼트와 같은 UI 컨트롤러의 로직에서 데이터를 다루는 로직을 분리하기 위해 등장한 Android JetPack 라이브러리이다. 두 가지를 분리해야 하는 이유 UI 컨트롤러(Activity, Fragment)의 목적 데이터를 표시해 주거나, 사용자가 어떤 작업을 했을 때 반응을 보여주거나 , 권한 요청과 같은 OS커뮤니케이션을 처리하는 것이 UI 컨트롤러의 목적이다. 따라서 UI 컨트롤러에서 데이터를 다루는 로직을 책임지게 되면 많은 유..
이번글에서는 마지막 설계 패턴인 MVVM에 대해서 적어볼까 합니다. MVP의 문제점? MVP 패턴에서는 Presenter가 View에 어떤 일을 요청하는지 명백히 확인이 가능했습니다. 하지만 Presenter와 View가 1:1 관계를 맺고, 강하게 결합되는 문제점이 있었습니다. MVVM의 목표 데이터 바인딩, LiveData 또는 RxJava 같은 Observable 타입을 이용하여 Presenter와 View 사이의 강한 의존성을 제거하는 것입니다. Presenter 대신 Viewmodel이라는 구성요소를 사용합니다. MVVM의 Components Model 데이터와 데이터에 관련된 행위를 의미합니다. 데이터와 데이터를 가져오는 로직 자체를 Model이라고 생각하면 이해하기 편합니다. 특히 MVVM의..
이전 글에서는 mvc에 대해서 포스팅했습니다. https://jja2han.tistory.com/256 [[Android] - 안드로이드 설계 패턴 (MVC) 📕배운 내용 안드로이드 애플리케이션 설계 패턴은 크게 3가지로 분류됩니다. ( MVC, MVP , MVVM) 이번 포스팅에서는 MVC에 대해서 알아볼 예정입니다. 애플리케이션 설계 패턴이 중요한 이유는 이전 jja2han.tistory.com](https://jja2han.tistory.com/256) 이번 글에서는 MVC의 문제점을 해결하기 위해 나온 설계패턴인 MVP에 대해서 적어볼까 합니다. MVC에서의 문제점!? 그것은 바로 View와 Model의 결합도가 높아서 유닛테스트가 불가능하다는 단점이 있습니다. 그 문제점을 해결하기 위해서 MVP..
📕배운 내용 안드로이드 애플리케이션 설계 패턴은 크게 3가지로 분류됩니다. ( MVC, MVP , MVVM) 이번 포스팅에서는 MVC에 대해서 알아볼 예정입니다. 애플리케이션 설계 패턴이 중요한 이유는 이전 글인 Clean - Architecture와 연관되어 있습니다. 간략하게 설명하면 앱의 지속적인 업데이트와, 안드로이드 정책의 계속적인 변화, 시장의 요구의 변화 등으로 인한 유지보수의 비용을 줄이기 위해서입니다. 여기서 잘 설계된 애플리케이션은 유지보수의 비용을 줄여주고, 안전성, 성능에 도움을 주기에 설계패턴을 완벽히 숙지하는 것이 중요하다고 생각합니다. 📕MVC란? Model , View , Controller의 구성요소로 관심사를 분리한 설계 패턴입니다. 안드로이드 앱 개발 초기에 많이 적용되..
재한
'분류 전체보기' 카테고리의 글 목록 (28 Page)