분류 전체보기
-
MVI - Part1Develop Diary 2020. 4. 6. 23:24
MVI 용어 정리 (1) Model 상태를 지닌 데이터를 뜻한다. 예를 들어 데이터가 현재 준비 중인지, 로딩이 완료 되었는지 등을 표현할 수 있다. (2) View Activity, Fragment, Widget 등의 UI를 뜻한다. (3) Intent 안드로이드의 Intent 객체와는 다른 개념입니다. MVI에서 Intent는 Event를 뜻한다. 뷰 → 모델 혹은 모델 → 뷰로 Intent를 주고 받을 수 있다 MVI 특징 (1) Data와 View의 Context를 완전히 분리하자 MVC 패턴을 시작으로 Data와 View를 분리하려는 시도는 지속되어 왔다. 수없이 많은 데이터와 상호작용 해야 하는 애플리케이션 개발에 유용했다. 하지만 Context까지는 분리시키지 못했다. 특히 MVC 패턴은 U..
-
백준_2163 초콜릿 자르기알고리즘/Dynamic Programming 2020. 1. 29. 09:46
링크 https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿을 친구들과 나눠 먹기로 했다. 이를 위해서 정화는 초콜릿을 계속 쪼개서 총 N×M개의 조각으로 쪼개려고 한다. 초콜릿을 쪼갤 때에는 초콜릿 조각을 하나 들고, 적당한 위치에서 초콜릿을 쪼갠다. 초콜릿을 쪼갤 때에는 금이 가 있는 위치에서만 쪼갤 수 있다. 이와 www.acmicpc.net 접근 재귀적으로 초콜릿을 절반으로 잘라 나간다 절반으로 자르고 나면 2개의 영역이 생긴다 A : 절반으로 잘린 크기 B : 전체..
-
3055_탈출알고리즘/BFS 2020. 1. 29. 09:35
링크 https://www.acmicpc.net/problem/3055 3055번: 탈출 문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S'로 나 www.acmicpc.net 접근 물과의 상호작용을 확인 하면서 비버굴로 들어가기 위한 최소 거리 도출 이동조건 고슴도치 영역이내 돌이 아님 물이 차오르지 않을 예..
-
15685_드래곤커브알고리즘/simulation 2020. 1. 29. 09:29
링크 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10) 입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다. 방향은 0, 1, 2, www.acmicpc.net 접근 map에 드래곤 커브를 그려나간다 대칭인 커브를 만들기 위해 기존에 생성된 방향의 역순대로 커브를 추가해나간다 방향 0 ..
-
백준 2583_영역 구하기알고리즘/BFS 2020. 1. 29. 09:27
링크 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다. www.acmicpc.net 접근 입력과 함계 영역을 색칠한다 for y =m) continue; if(visited[ny][nx] || map[ny][nx] == 1) c..
-
백준_1057 토너먼트알고리즘/simulation 2020. 1. 29. 09:25
링크 https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 한다. 이긴 사람은 다음 라운드에 진출하고, 진 사람은 그 라운드에서 떨어진다. 만약 그 라운드의 참가자가 홀수명이라면, 마지막 번호를 가진 참가자는 다음 라운드로 자동 진출한다. 다음 라운드에선 다시 참가자의 번호를 1번부터 매긴다. 이때, 번호를 매기는 순서는 처음 www.acmicpc.net 접근 경기 대진표를 그려본다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 3 5 8 9 11 13 15..
-
12869_뮤탈리스크알고리즘/BFS 2020. 1. 28. 09:18
링크 https://www.acmicpc.net/problem/12869 12869번: 뮤탈리스크 1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다. www.acmicpc.net 접근 - 순열 생성을 통해 SCV의 공격 순서를 정한다 - n이 3가지 제한되어 있으므로 3! = 6 이다 - typedef vector scv 로 scv의 상태를 정한다 - 공격횟수를 저장하기 위헤 map 를 사용한다 - 만약 hp가 0이상인 scv가 하나도 없다면 탐색을 멈추고 도달 하기 까지의 거리를 반환한다 #include #include #include #include #include usi..
-
9205_맥주마시면서 걸어가기알고리즘/DFS 2020. 1. 28. 09:15
링크 : https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 문제 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수도 있다. 미리 인터넷으로 조사를 해보니 다행히도 맥주를 파는 편의 www.acmicpc.net 접근 - 10000(50*20) 미터 이내에 있는 거리는 도달 할 수 있다 - 출발점으로 부터 각각의 좌표 정보를..