본문 바로가기

분류 전체보기

(115)
SW expert academy 1227 미로2 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int len, start; int moves[4][2] = { {-1,0}, {0, -1}, {1, 0}, {0, 1} }; int arr[100][100]; set adj[100][100]; int main() { for (int tc = 1; tc > testcasenum; int starti, startj, endi, endj; for (int i = 0; i < 100; i++) { string ..
SW expert academy 1251 하나로 #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int N; double E; long long node[1000][2]; //i, j 저장 long long adj[1000][1000]; // i j의 비용 int main() { int tcm; scanf("%d", &tcm); for (int tc = 1; tc
백준 17069 파이프 옮기기2, 17070 파이프 옮기기1 #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long lld; int N; int arr[32][32]; lld memo[32][32][3]; lld dp(int i, int j, int mode) { if (i 31 || j 31) { return 0; } lld& m = memo[i][j][mode]; if (m != -1) return m; if (i == 0 && j == 1 && mode == 0) { m = 1; return m; }..
Git : 내 컴퓨터에도 필요하고 원격에도 필요한데 변경사항을 반영하기 싫을 때 보통 깃에서 잘 쓰던 파일을 ignore 하고싶으면 .gitignore에 해당 파일을 추가하고 git rm --cache . 와 같은 명령어로 깃 캐시를 초기화 하게 된다. 이렇게 하면 내 컴퓨터에는 파일이 남아있지만 원격에는 파일이 사라지게 된다. 그런데, 내 컴퓨터에서도 파일이 있어야 되고, 원격에도 있어야 되는데, 향후의 변경사항만 반영하기 싫으면? 그럴 경우 git update-index --assume-unchanged [해당 파일 주소] 를 쓰면 된다. 예를 들어, google_maps_api.xml의 파일은 미리 남겨두고, 해당 내용에 들어가있는 google api key만 원격에 올리지 말아야 할 상황이 있다고 생각해보자. 이런 상황이 되면 google_maps_api.xml의 파일을 먼저..
Android Kotlin MVVM패턴으로 간단한 검색 앱 만들기 - 5. SingleLiveEvent, SnackbarMessage S4장에서 계속 사용하던 LiveData의 문제점이 뭘까요? 예를들어 LiveData의 Observing을 이용해서 startActivity()를 한다고 생각해봅시다. 우리는 그럼 뷰모델에선 startActivityLiveData.value = SOME_DATA 와 같이 setValue를 하고, 액티비티에선 viewModel.startActivityLiveData.observe(this, Observe{startActivity(어쩌구 저쩌구 클래스::class.java)}) 와 같이 실행을 하겠죠. 그렇다면 여기서 문제점이 생깁니다. 만약 startActivityLiveData를 observe하고 있는 액티비티가 회전을 하게되면? 그럼 액티비티는 startActivityLiveData가 이전에 가지고 있..
Android Kotlin MVVM패턴으로 간단한 검색 앱 만들기 - 4. Livedata를 통한 데이터 바인딩 이번에는 저번 글에 이어서 Livedata를 이용하여 View 와 ViewModel간의 데이터 바인딩에 대해 글을 써보겠습니다. 저번 글에서도 설명한것처럼, View는 ViewModel 객체를 멤버로 가지고 있지만, ViewModel은 View의 객체를 가지고 있지 않습니다. 그럼, ViewModel에서 View의 함수를 호출하거나 View의 내용을 변경하거나, 혹은 Context나 Activity 객체의 함수를 호출해야 할 때는 어떻게 해야 할까요? 물론 Context를 이용하고 싶으면 AndroidViewModel을 상속하면 되지만, 지금은 넘어가도록 합시다. 해답은 바로 View가 ViewModel의 특정한 데이터를 Observing하고 있다가, 그 데이터가 변경될 때 View의 로직을 수행하면 됩..
2018년 회고록 코딩인싸들은 다 한다는 회고록이다. 1월. 기억이 하도 안나서 깃헙을 봤더니 이땐 아직 본격적으로 커밋을 안할 때였다. 블로그 글을 보니 방학이라 알고리즘을 조금 했던거 같다. 그래봤자 20~30문제 밖에 안풀었네.. 2월, 3월. 이때 본격적으로 안드로이드에 관심을 가진것 같다. 근데 여전히 깃헙 기록도 없고 블로그 글도 없어서 걍 넘어간다 ㅋㅋㅋ 4월. 학교 장기 텀 과제 겸 해서 Translation Translator라는 앱을 만들었다. 간단하게 말하자면, 파파고가 "Ajax"를 "아약스"로 번역하는 경우가 있는데, 이를 단어장에 ["Ajax" -> "에이젝스"]를 추가하면 이 단어를 제외하고 번역해주는 앱이였다. 안드로이드 초보였어서 그때 겨우 리사이클러뷰 써가면서, DB는 SQLite 써가면서..
Android Kotlin MVVM패턴으로 간단한 검색 앱 만들기 - 3. RxJava + Retrofit를 통한 네트워킹 및 옵저빙 이번 글에서는 Retrofit으로 네트워크 통신을 하고 그 결과값을 RxJava로 받아오는 과정을 수행해보겠습니다. 일단 Retrofit에 대해 간단히 알아보도록 하죠. Retrofit 저도 최근에 알았는데, 레트로핏 한글 문서가 있더라구요. http://devflow.github.io/retrofit-kr/ 길지 않으니 한번 정독하셔도 됩니다. 간단하게 레트로핏을 요약하자면 public interface GitHubService { @GET("/users/{user}/repos") Call listRepos(@Path("user") String user);} 이렇게 인터페이스 형태의 서비스를 먼저 만듭니다. 자바 어노테이션으로 @Get이나 @Post 등을 적어주고, 파라미터로 라우팅 정보를 적어줍니다...