[알고리즘] 연속된 구간의 최대 합 찾기
* 본 게시글은 [알고리즘 문제 해결 전략] 도서를 참고하여 작성되었습니다. * 1. 무식(...)한 알고리즘 더보기 int fastMAXSum(int list[]){ int i, j; int N = 10, ret = MIN, sum = 0; for(i=0; i
* 본 게시글은 [알고리즘 문제 해결 전략] 도서를 참고하여 작성되었습니다. * 1. 무식(...)한 알고리즘 더보기 int fastMAXSum(int list[]){ int i, j; int N = 10, ret = MIN, sum = 0; for(i=0; i
* 본 게시물은 [핵심만 골라 배우는 안드로이드 스튜디오3 & 프로그래밍] 도서를 참고하여 작성되었습니다. Activity 액티비티는 컴포넌트를 더 높은 수준의 개념으로 끌어올린, 어플의 기능을 갖는 단일의 독립 실행형 모듈이다. 재사용성, 상호 운용성이 극대화되어있다. 그리고 하나의 사용자 인터페이스 화면과 그 기능에 밀접한 관련이 있다. EX) 한 일정 관리 어플에서 당일날 설정된 일정만 보여주는 화면 익월 달력을 보여주는 화면 일정을 설정하는 화면 등으로 이루어 진다면 Activity를 사용해 이것들을 하나의 기능적 모듈로 두고, 인터페이스 화면(이벤트 처리 포함)과 함께 관리할 수 있다. 그리고 액티비티끼리는 완전히 독립되어 있다. 따라서 액티비티 사이에 함수나 변수를 공유하는 것은 불가능하다. ..
문제 (15954)인형들 링크 : https://www.acmicpc.net/problem/15954 사용 언어 : JAVA 카카오프렌즈 스토어를 관리하는 브라이언은 어떠한 특정한 곳에 인형들을 배치하고자 하는데, 그곳에 인형들을 선택하는 방법은 다음과 같다. 먼저 비슷한 인형이 가깝게 위치하도록 서로 다른 N개의 인형을 종류당 한 개씩 일렬로 배치한다. 그 후, 선호하는 사람의 수의 표준편차가 최소가 되는, K개 이상의 연속된 위치에 있는 인형들을 선택하여 그들을 같은 곳에 배치한다. 위의 방법으로 인형들을 선택했을 때, 선택된 인형들의 선호하는 사람의 수의 표준편차를 구하여라. 입력 값 첫 번째 줄에 N과 K가 주어진다. N은 1 이상 500 이하의 정수이고, K는 1 이상 N 이하의 정수이다. 두 ..
문제 (15953)상금 헌터 링크 : https://www.acmicpc.net/problem/15953 사용 언어 : JAVA 제이지는 자신이 코드 페스티벌에 출전하여 받을 수 있을 상금이 얼마인지 궁금해졌다. 그는 자신이 두 번의 코드 페스티벌 본선 대회에서 얻을 수 있을 총 상금이 얼마인지 알아보기 위해, 상상력을 발휘하여 아래와 같은 가정을 하였다. 제1회 코드 페스티벌 본선에 진출하여 a등(1 ≤ a ≤ 100)등을 하였다. 단, 진출하지 못했다면 a = 0으로 둔다. 제2회 코드 페스티벌 본선에 진출하여 b등(1 ≤ b ≤ 64)등을 할 것이다. 단, 진출하지 못했다면 b = 0으로 둔다. 제이지는 이러한 가정에 따라, 자신이 받을 수 있는 총 상금이 얼마인지를 알고 싶어한다. 입력 값 첫 번..
일반적인 Android 앱은 Activity/Fragment, Service, Content Provider, Broadcast Receiver 등의 여러 App Component(앱 구성요소) 들로 구성되어 있다. (안드로이드 4대 컴포넌트) 개발자는 이러한 앱 구성요소 대부분을 manifest 파일에서 선언 -> Android OS가 이 manifest 파일을 사용하여 기기를 사용하는 사용자의 전반적인 작업 환경을 망가뜨리지 않으면서 앱을 이 환경에 자연스럽게 통합하는 방법을 결정한다. 사용자의 전반적인 작업 환경(모바일 앱 사용자 환경)이란 예를 들어 Android 앱을 사용하는 유저는 짧은 시간 내에 여러 앱을 실행할 때가 많다. 따라서 앱이 사용자 중심의 다양한 workflow에 맞게 조정될 수..
Navigation Drawer (참고 글 : https://recipes4dev.tistory.com/140) navigation 기능을 drawer처럼 필요할 때마다 열고 닫으며 사용하는 것임. (navigation 뷰를 drawerLayout 에 넣어 사용하는 것이지 저 자체로 하나의 뷰 위젯 클래스가 아니다) 또 이 drawerLayout는 (대체로) FrameLayout으로 구성한다. 왜냐면 각 네비게이션 항목마다 레이아웃을 각각 구성하면 리소스 낭비가 크다고 했었나... 여하튼 그렇게 하나하나 만들어 매번 전체 화면을 이동하는 것보다 FrameLayout으로 (공통적인 부분을 제외한) 바꿔 표시될 뷰만 수정하는 것이 훨씬 빠르기 때문이다. AppBar vs ToolBar vs ActionBar..
목표 부모 RIB와 통신하는 자식 RIB 생성 부모의 인터랙터가 원하면 자식 RIB를 탈부착하기 view-less RIB 만들기 부모 RIB가 처음 로드될 때 자식 RIB를 첨부하기 RIB 유닛 테스팅 산출물 어떤 형태 이런 형태 프로젝트 구조 플로우 플레이어가 로그인 -> 스타트 게임 버튼을 누른다. 이때 LoggedOut 이 Root RIB에게 사용자의 로그인 액션을 알려줄 것이다. 그 뒤 root router가 LoggedOut에서 LoggedIn RIB로 제어권을 넘겨 줌. loggedIn 은 뷰리스 RIB라서 딱히 보여주는건 없고 그냥 LoggedOut에서 OffGame의 뷰를 보여주기만 한다. root router는 LoggedOut의 인터랙터의 리스너로 여겨지고 이것을 통해 LoggedOut..
참고 링크 : github.com/uber/RIBs/wiki/iOS-Tutorial-1 목표 RIB의 다양한 조각(piece) 이해하기 서로 어떻게 상호작용하고 통신하는지 이해하기 산출물 두개의 플레이어의 이름을 입력하고 로그인 버튼을 누르면 Xcode 콘솔에 해당 플레이어들의 이름이 출력됨 player1 vs player2 프로젝트 구조 (파파고 번역...) 우리가 제공하는 보일러 플레이트 코드는 두 개의 RIB로 구성된 iOS 프로젝트를 포함하고 있다. 앱이 시작되면 AppDelegate는 루트 RIB를 구축하고 애플리케이션에 대한 제어를 전송한다. 루트 RIB의 목적은 RIBs 트리의 루트 역할을 하고 필요할 때 해당 하위 트리에 제어를 전달하는 것이다. 루트 RIB의 코드는 대부분 Xcode 템플..
참고 링크 : github.com/uber/RIBs#installation-for-ios 해당 게시물은 github.com/uber/RIBs/wiki/iOS-Tutorial-1 을 공부하기 위해 개인적으로 적어 놓은 것입니다. 저도 왕왕왕초보라 틀린 부분이 있을 수 있습니다ㅠㅠ! 참고만 해주세요. iOS에 RIBs를 설치하고 Xcode에 파일을 만들어 보자! 나는 CocoaPod을 사용했기 때문에 그 과정을 적겠다. 1. CocoaPods 설치 $ sudo gem install cocoapods 1-1. CocoaPods의 라이브러리를 저장할 파일로 이동 $ cd /(원하는 파일 경로) 혹은 그냥 cd 뒤로 빨간 박스친 파일 명을 Shift 누른 채 드래그하면 쉽다. 1-2. CocoaPod init $..
PostgreSQL 설치 1. 먼저 postgreSQL 홈페이지에 접속한다. 홈페이지↓ PostgreSQL The world's most advanced open source database. www.postgresql.org 상단 메뉴바 혹은 페이지 중앙의 download 버튼을 눌러 postgreSQL에서 무료로 제공하는 프로그램을 다운받는다. (혹은 간편하게 바로 다운로드 페이지로 이동할 수도 있다↓) PostgreSQL: Downloads Downloads PostgreSQL Downloads PostgreSQL is available for download as ready-to-use packages or installers for various platforms, as well as a sou..