분류 전체보기 264

[Android] Binder

Android Architecture 먼저 안드로이드의 구조이다. 여기서 시스템 아키텍처인 Binder IPC에 대해 정리하고자 한다. https://source.android.com/devices/architecture Binder IPC(Binder Inter Process Communcation) 모든 시스템 서비스가 서버 프로세스 형태로 제공되기 때문에 다른 프로세스로 요청과 응답을 보내는 메커니즘이 필요한데, 이 메커니즘이 바인더(Binder)이다. 예를 들어 시스템 서비스와 어플리케이션의 상호작용에서 음악 애플리케이션에서 음악을 들으면 오디오 Flinger 서비스에서 제공하는 play() 기능을 사용할 것이다. 하지만 이 오디오 Flinger 서비스는 '미디어 서버'에서 동작하고 음악 애플리케..

Ubuntu, Android 2019.10.19

[D3.js] 막대 추가, 삭제 같이하기

이때까지 막대그래프를 가지고 데이터를 추가하고 삭제하는 시각화를 진행해보았다. 이 두가지를 함께 응용하여 추가와 삭제가 동시에 이루어지도록 해보자. 전체코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 1..

D3_js 2019.10.16

백준[17140] 이차원 배열과 연산

문제 출처 : https://www.acmicpc.net/problem/17140 위 문제는 '삼성 역량 테스트' 기출문제로 분류되어 있다. 먼저 다른 사람의 코드는 보지 못했다. 필자는 문제를 읽으면서 그냥 하라는 대로 구현하는 문제로 생각하고 시키는대로 풀었다. 언제나 그렇듯 설계를 잘하고 코드를 짜면서 제대로 돌아가고 있는지 확인하는 과정이 필요하다. 이번에도 확인하면서 잘 돌아가는것을 보았으나 한두개의 일부분만을 확인했지 10번 20번 돌아가는 경우의 검증을 제대로 하지 않아서 오류를 찾는데 시간이 좀 걸렸다. 이제 문제를 풀어보자. 3x3 matrix를 기준으로 R연산 혹은 C연산을 하는 문제이다. 연산을 구현하기 위해서는 각 Row, Collum 마다의 값과 횟수를 기준으로 정렬하는 방법이 필..

백준[17135] 캐슬 디펜스

이 문제의 출처는 아래와 같다. https://www.acmicpc.net/problem/17135 '삼성 A형 기출문제' 문제집에 있는 문제이다. 우선 필자는 단순히 구현했다. N,M 의 범위가 작기 때문에 모든 경우를 for 반복문으로 돌려 문제에서 주어진 조건에 맞게 구현하였다. 3명의 궁수를 3중 for문으로 모든 경우에 위치시키고 각 궁수마다 적의 (x좌표, y좌표, 궁수와의 거리) 가지도록 하는 구조체를 사용해 2차원 map에서 적을 만나는 경우 각 궁수별로 해당 적까지의 거리와 위치를 vector에 저장하였다. 해당 벡터들의 크기가 1보다 크다는 뜻은 여러 적을 죽일 수 있으다는 뜻이고 문제의 조건에 맞게 거리가 가장 가깝고 제일 왼쪽에 있는 적을 제거하도록 벡터를 정렬하여 적을 줄여나갔다...

알고리즘 2019.10.11

[Ubuntu] 삼바(Samba)로 윈도우에서 ubuntu 파일 쓰기

Ububtu 삼바를 설치하기 위해 아래의 출처를 참고하여 진행하였다. https://techlog.gurucat.net/290 삼바 설치 및 계정 등록 명령어로 간단하게 설치한다. 이 후, 삼바에 사용자 계정을 추가한다. $ sudo smbpasswd -a [사용자 계정명] 위와 같이 입력하여 사용할 비밀번호를 2번 입력하면 계정이 추가된다. $ sudo pdbedit -L 명령어로 계정이 추가되었는지 확인할 수 있다. 삼바 설정 설치와 계정 추가가 완료되면 이제 설정만 수정하면 끝이다. $ sudo vi /etc/samba/smb.conf 로 들어가 맨 마지막에 아래의 내용을 추가해준다. 보시다시피, [사용자이름] 으로 시작하고 아래의 내용을 입력한다. path 는 공유할 디렉토리의 경로이며 write..

Ubuntu, Android 2019.10.09

백준[17070] 파이프 옮기기

본 문제의 출처는 아래에서 확인할 수 있다. https://www.acmicpc.net/problem/17070 이 문제는 인증된 문제집의 '삼성 A형'에서 확인할 수 있다. N의 크기가 매우작으며 오른쪽과 아래로 밖에 이동하지 않는다. 연결할 수 있는 모든 경우를 탐색하도록 한다. 필자는 BFS를 사용하였다. 방향 즉, 파이프 연결에 따른 이동 방법에 따라 파이프를 모두 연결하여 탐색을 진행하는데 여기서는 중복된 모든 경우를 봐야하기 때문에 방문체크여부를 할 필요가 없다. 큐에 연결가능한 경우를 모두 넣어 조건에 맞게 진행하면 쉽게 해결할 수 있다. 방향에 따른 처리 간소화하여 코드를 작성할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22..

알고리즘 2019.10.04

백준[17471] 게리맨더링

본 문제는 아래의 출처에서 확인할 수 있다. https://www.acmicpc.net/problem/17471 인증된 문제집에서 '삼성 A형 기출'에 있는 문제이다. DFS를 활용하여 문제를 해결할 수 있다. 필자는 2그룹으로 나누는 방법으로 부분집합을 사용하였으며, 그룹을 나눈 후, 문제의 조건에 맞게 DFS를 수행하였다. 다른사람은 조합, Union-find 등을 사용하였으며, 필자는 부분 집합으로 그룹으로 나누었다. N의 크기가 작기 때문에 부분집합으로 중복된 그룹을 또 탐색하지만, 시간초과에 걸릴 것 같지는 않았다. 부분집합으로 하게되면 (1,2,3) (4,5,6) 이란 그룹을 (4,5,6) (1,2,3) 으로 또 탐색을 하게된다. 그룹화 이후, DFS를 통해 각 그룹에 맞게 탐색이 가능한지 확..

알고리즘 2019.10.04

[Android] 기기연결을 통한 풀 소스코드 빌드 및 부분빌드

이전글에 우리는 Android 풀 소스코드를 다운받았다. 이것을 빌드하여 실제 기기에 이미지를 올려 구동시켜본다. Android는 컴퓨터처럼 다양한 회사의 기술의 집합체임을 느낄 수 있다. 아래의 출처를 참고하였다. https://programist.tistory.com/entry/Nexus-4-%EC%8B%A4%EC%A0%9C-%EA%B8%B0%EA%B8%B0-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-OS-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%A0%81%EC%9A%A9%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-OS-%ED%92%80-%EC%86%8C%EC%8A%A4-%..

Ubuntu, Android 2019.09.25

[Android] android 풀 소스 코드 및 Ubuntu 용량 수정

여기서 Android full source 코드 다운에 대해 정리하고자 한다. 리눅스, Ubuntu 환경에서 진행하였으며, 아래의 주소를 참고하여 진행하였다. 자세한 내용은 아래의 내용을 참조하면 쉽게 다운받을 수 있다. https://programist.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-OS-%ED%92%80-%EC%86%8C%EC%8A%A4-%EB%B9%8C%EB%93%9C-%EC%BD%94%EB%93%9C-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-%EB%B0%8F-%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9..

Ubuntu, Android 2019.09.25

[D3.js] 막대 제거하기

이번에는 원래 있던 데이터에서 데이터를 제거하여 각 축과 영역에 맞게 시각화를 진행하고자 한다. 전체코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 11..

D3_js 2019.09.23