반응형

분류 전체보기 316

안드로이드 스튜디오: 브로드캐스트 리시버(BroadCast Reciver)

이번 포스팅은 안드로이드 4대 컴포넌트의 3번째 브로드캐스트 리시버를 알아보고 구현해봅시다. • Broadcast Receiver • 시스템 event 수신 • 저전력 모드, booting 이벤트, SD 카드 탈부착, Wi-Fi 접속 등 • 다른 application의 메시지 수신 • Application 간의 소통 창구 https://developer.android.com/guide/components/broadcasts?hl=ko 브로드캐스트 개요 | Android 개발자 | Android Developers 브로드캐스트 개요 Android 앱은 Android 시스템 및 기타 Android 앱에서 게시-구독 디자인 패턴과 유사한 브로드캐스트 메시지를 받거나 보낼 수 있습니다. 관심 있는 이벤트가 발생..

안드로이드 스튜디오 : 서비스(Service)

이번 포스팅에선 안드로이드 스튜디오 4대 컴포넌트중 하나인 서비스를 알아보겠다. 서비스는 무슨일을 할까? • 액티비티와 상관 없이 백그라운드에서 동작하는 component • 서버로부터 contents 다운로드 • 멜론/지니 • DB에 저장 • Wi-Fi, BLE 연결 안드로이드 서비스를 만드는법 생성시에 이런 화면이 나타난다. 첫번째 사진처럼 생성시에 Service로 만들면 AndroidManifest에 자동으로 서비스가 등록된다. onCreate() 서비스가 처음 생성되었을 때(즉 onStartCommand(),onBind()를 호출하기 전) 호출되어 일회성 설정 절차를 수행 서비스가 이미 실행중인 경우, 호출되지 않음 onStartCommand() 구성 요소가 서비스를 시작하도록 요청하는 경우 호출..

[프로그래머스,Java] Levle2: 위장

문제분석 목표: 스파이가 위장을 할수있는 경우의 수를 구하시오. 주어지는 입력: [의상의 이름, 의상의 종류] 형식으로 주어지는 clothes 위 사진의 표를 보면, 종류와 이름이 너무 이쁘게 Key , Values로 나누어져 있지않나요? 주어지는 입력들도 Key, Value형식으로도 마침 주었고요. 그래서 필자는 적극적으로 Map(HashMap)을 사용했습니다. Key : 의상의 종류 , Value : 의상의 이름을 담는 리스트 Map에 정보를 입력할때, 2가지 분기를 나누어줫습니다. 1. 의상의 종류가 없을때 -> 새로운 리스트를 생성한뒤, 의상의 이름을 담아 넣어준다. 2.의상의 종류가 이미 있을때 ->그 의상의 종류의 의상리스트를 가져와, 새로운 의상을추가해 다시 넣어준다. ------------..

[프로그래머스,Java] Level2: 배달

문제분석 문제로, 각 마을간의 다리와 이동거리를 주어집니다. 목표 : 1번마을로부터 출발한다고 가정할때, N시간 이하로 배달이 완료되는 지역 개수를 구하시오. 요점은, 정점과 정점 사이의 최소거리를 구하는 알고리즘을 구현하면된다. 그게 바로, 플로이드 와샬 알고리즘이다. 구현은 구글링을하시면 다 나와있습니다. 플로이드 와샬 구현법: 1. 정점의 개수만큼 2차원 배열 생성, 그리고 모든 배열값에 INF 부여 (큰 숫자) 2. 입력으로 받은 정점과 정점사이의 다리를 입력합니다. 3. 3차반복을통해, 정점과 정점사이의 다리의 최소거리를 구합니다. 사실 이 플로이드 와샬 알고리즘은 꽤나 쉽게 구현이 가능합니다. 자세하게 돌아가는 원리를 아는게 힘들다면, 언제 어떨때 써야하는지 알고, 검색하고 적용하는게 중요하다..

[프로그래머스,Java] Level2: 괄호 회전하기

문제분석 () [] {} 로 이루어진 괄호기호가 무작위로 배치가되어있습니다. 괄호 기호를 첫 입력과 똑같이 될때까지 한 문자씩 회전시킵니다. 회전시키는 도중 올바른 괄호문자열이 있으면 갯수를 셉니다. 2개의 로직을 구현할 필요가있습니다. 1. 해당 문자열이 올바른 괄호 문자열인지? 2. 해당 문자열을 한문자씩 회전시키기 1번 로직은 Stack으로 구현이 가능합니다. '(' 와 ')' '['와 ']' 만나면 제거를 한뒤, 스택이 텅텅비어있으면 올바른 괄호문자열입니다. 2번 로직은 for loop로 문자열 길이만큼 반복을한뒤, 첫번째 문자를 맨 뒤로 보내면 끝입니다. (문자열 다루기) 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2..

[프로그래머스,Java] Level2: 예상 대진표

문제분석 주어지는 입력 : A의 대진번호, B의 대진번호 구해야하는 값: A 와 B가 대진하게될 라운드를 구하기. 규칙: A,B는 만나기전까지 무조건 이기는것을 가정한다. 이 문제의 핵심은 규칙파악입니다. 규칙이 도대체 뭘까요? 1번과 2번이 대진을 벌여 이기면, 1번을 부여받고 다음 라운드로 진출합니다. 3번과 4번이 대진을 벌여 이기면, 2번을 부여받고 다음 라운드로 진출합니다. 5번과 6번이 대진을 벌여 이기면, 3번을 부여받고 다음 라운드로 진출합니다. ... 짝수번호/2 = 다음라운드에서 받게될 번호 라는걸 눈치채셧을겁니다. 홀수번호는 (홀수번호 +1) /2 = 다음라운드의 번호입니다. 이 형식을 반복하다, A와 B의 차이가 1이될경우 반복로직을 종료합니다. 문제풀이 1 2 3 4 5 6 7 8..

안드로이드 스튜디오 : SQLite 사용

안드로이드 환경에서 데이터베이스를통해 데이터를 관리하는방법을 알아보려고한다. RDBMS (관계형 데이터베이스 관리 시스템) 이 많이 존재한다. MySql , Oracle, MariaDB, SQLite... 등등 그중에서 SQLite를 사용하여 데이터베이스를 관리해보도록 하기로했다. https://do.co/3kD2Ybd SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems | DigitalOcean This article compares and contrasts three of the most widely implemented open-source RDBMSs: SQLite, MySQL, and Postg..

안드로이드 스튜디오 : 데이터 파일 처리하기

이번 포스팅은 안드로이드로 파일을 쓰고, 불러오는 파일 처리기능을 알아보겠습니다. 데이터를 저장 , 관리를 하는방법은 다양한 방법이 있습니다. 1.파일 기반 2.Shared preferences 3.Database 이번에 3가지방법을 모두 다뤄보겠습니다. 파일기반으로 데이터 저장, 관리하기 파일을 생성하여 데이터를 저장하려면 openFileOutput() 메소드를 사용하면된다. 반환값으로 FileOutputStream이 반환된다. openFileOutput의 name파라미터는 파일명의 이름을, 두번째 파라미터로 쓰는 방식을 설정한다. Context.Mode_Private가 무엇일까? 파일을 생성하는 default모드고, 선언한 어플리케이션만 접근할수있는 모드다. -> outputStream.write()..

[프로그래머스,Java] Level2: 게임 맵 최단거리

문제분석 따로 어려운 규칙도없고, 단순 길찾기문제이다. 길찾기 문제를 처음접하고 풀어보는 사람이라면 연습하기에 딱 좋은 기출문제입니다. 길찾기 문제를 풀기위해선 완전탐색을 구현하셔야합니다. 모든 4방향길을 완전탐색해서 최적의 길을 찾아야하니깐요. 완전탐색을 구현하는 2가지 방법이 존재하죠 BFS, DFS방법이있습니다. DFS는 Stack,재귀함수 BFS는 Queue 처럼 구현한다고 생각하시면됩니다. DFS VS BFS DFS는 깊이 우선 탐색입니다. 쉽게말하면, 한 우물을 깊게 먼저파는 탐색방법입니다. BFS는 너비 우선 탐색입니다. 이건 반대로, 얇고 넓게 파는 탐색방법입니다. 저희는 최소의 길을 찾아야하는데, DFS, BFS중 무엇을 사용해야 효율적일까요? 당연히 BFS입니다. 얇게 넓게파다가, 가장..

[프로그래머스,MYSQL] Level2: 이름이 el 들어가는 동물 찾기

문제분석 우리가 찾아야하는건 아이디와 이름 조회 -> Select 아이디,이름 조건은 동물의 종이 '개' 이며, 이름이 'el'이 포함되어야합니다. -> Where 조건 종이 '개' 라는건 Animal_type='dog' 라는걸로 쉽게 구현이가능합니다. 이름이 'el'이 포함된다는걸 구현하려면, like문을 사용하셔야합니다. 그냥 Name like 'el' 이라고 사용한다면 el인것만 찾습니다. el이 포함된 모든 이름을 찾을려면 Name like '%el%' 로 작성하셔야합니다. %el% 는 %가 익명의 문자가 와도 된다라는 뜻으로 해석하시면 될거같습니다. 문제풀이 1 2 3 4 SELECT ANIMAL_ID,NAME from ANIMAL_INS where NAME like '%el%' and ANIM..

알고리즘/MYSQL 2021.11.24
반응형