플로이드 워셜(Floyd-Warshall) 알고리즘
개발/알고리즘2023. 10. 11. 12:57플로이드 워셜(Floyd-Warshall) 알고리즘

1. 플로이드 워셜(Floyd-Warshall) 이 알고리즘은 동적 계획법의 한 예로, 로버트 플로이드가 1962년에 현재 알려진 형태로 발표했다고 한다. 하지만 본질적으로는 1956년 클레이니 알고리즘, 1959년 버나드 로이의 알고리즘, 1962년 스티븐 워셜 알고리즘과 밀접한 관련이 있다. 따라서 이 알고리즘은 플로이드-워셜 알고리즘, 로이-워셜 알고리즘, 로이-플로이드 알고리즘, 또는 WFI 알고리즘으로 불린다고 한다. 플로이드 워셜 알고리즘은 "모든 최단 경로를 구하는 알고리즘"이다. 한 번 실행하여 모든 노드 간 최단 경로를 구할 수 있다. 그러나 플로이드 워셜 알고리즘의 시간 복잡도는 O(n^3)이다. 즉, 그래프의 크기가 작아 세제곱 시간 알고리즘을 적용해도 문제가 풀리는 경우에만 사용이 ..

날씨 앱 기록 01
개발/AOS2023. 10. 6. 16:45날씨 앱 기록 01

다음글 : https://small-stepping.tistory.com/603 날씨 앱 기록 02 이전글 : https://small-stepping.tistory.com/596 1. 시간대 별로 배경 색과 박스 색이 다르다. (morning, afternoon, evening, night) - 너무 많아서 오히려 번잡하게 느껴지나 싶어서 2개로 추릴까 생각 중이다. 2. swipe small-stepping.tistory.com https://small-stepping.tistory.com/586 다시 개발 중... 다시 앱쪽을 만질 때가 됐다, 더 손 놓고 있으면 기억 하나도 안나겠다 싶어서 기초를 다시 잡고자 간단하게 포트폴리오, 튜토리얼 강좌 등으로 많이 쓰이는 공공데이터 API를 사용한 앱 개..

kapt에서 KSP로 이전
개발/AOS2023. 10. 5. 15:34kapt에서 KSP로 이전

다시 안드로이드 스튜디오를 만지면서 다음과 같은 권고 사항을 발견하게 되었다. 내가 쓰려는 room 라이브러리는 KSP 지원되기 때문에 kapt보다 KSP를 쓰는게 더 성능이 좋을 것이라는 듯 하다. https://developer.android.com/studio/build/migrate-to-ksp?hl=ko#kts kapt에서 KSP로 이전 | Android 개발자 | Android Developers 주석 프로세서의 사용을 kapt에서 KSP로 이전합니다. developer.android.com kapt에서 KSP로 바꾸는 방법에 대해서는 위 링크에 자세히 나와있다. KSP 지원에 사용하는 라이브러리 확인 프로젝트에 KSP 플러그인 추가 주석 프로세서를 KSP로 대체 kapt 플러그인 삭제 우선 ..

안드로이드 API 레벨 별 버전, SDK, 이름
개발/정보2023. 9. 22. 14:00안드로이드 API 레벨 별 버전, SDK, 이름

버전 SDK/API 레벨 버전 코드 코드명 사용율 출시연도 5 6 7 8 9 10 11 12 13 14 Android 14 Level 34 / 14 UPSIDE_DOWN_CAKE Upside Down Cake - - 5 6 7 8 9 A B C D E Android 13 Level 33 / 13 TIRAMISU Tiramisu 33.05% 2022 20 21 22 23 24 25 26 27 28 29 Android 12 Le..

AndroidStudio에서 API Key, Auth Key 관리하기
개발/AOS2023. 9. 19. 17:39AndroidStudio에서 API Key, Auth Key 관리하기

학부생땐 생각도 없이 과제 기한에 맞춰 만드는거에 급급해서 Key든 String이든 하드코딩을 때려박던게 기억난다... 나중에 포트폴리오 정리한다며 올리고 나서 깃허브 로그에, 파일에 전부 Key가 남아있는걸 확인하고 다 지우고 다시 하고 했던 기억이 있다. 보안 이슈가 매우 크기 때문에 Key와 같은 중요한 것들을 숨기고 관리하는 방법은 인지하는 것이 좋다. 1. gitignore 체크하기 보통 Android Studio Project를 생성하면 다음과 같은 파일들이 프로젝트 폴더 내부에 생겨나게 된다. 여기서 첫번째로 주목할 것은 .gitignore다. 개발일을 희망하는 사람들이라면 사용하는 github에 자신의 프로젝트를 올릴 때 올리지 않을 파일, 폴더를 지정하는 txt 배열이다. github에서..

MVC, MVP, MVVM 패턴 비교
개발/정보2023. 9. 4. 14:49MVC, MVP, MVVM 패턴 비교

1. MVC MVC패턴은 Model + View + Controller를 합친 용어이다. Model : 에플리케이션에 사용되는 데이터와 해당 데이터를 처리하는 부분. View : 사용자에게 보여지는 UI. Controller : 사용자의 입력을 받고 처리하는 부분. 1-1. 동작 순서 사용자의 행동이 Controller에 도달 Cotroller는 사용자의 행동을 확인하고 Model을 업데이트 Controller는 Model을 나타내줄 View를 선택 View는 Model을 이용해 화면을 업데이트 ++ MVC에서 View가 업데이트되는 방법 View가 Model을 이용해 직접 업데이트 Model에서 View에게 Notify하여 업데이트 View가 Polling으로 주기적으로 Model의 변경을 감지하여 업..

Git 기본적인 명령어
개발/정보2023. 8. 24. 15:52Git 기본적인 명령어

사용하는 프로그램 : https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp git-scm.com 0. git 설치 후 초기 설정 더보기 본인은 다음과 같이 D 드라이브에 githubs 폴더를 만들고 그 안에 repositor..

개발/정보2023. 7. 27. 16:55안드로이드 스튜디오 Giraffe 업데이트 살펴보기

참고 영상 : https://youtu.be/Gcr1TmFv8IY 주요 내용 : 1. 안드로이드 스튜디오 새로운 UI 2. 새 진단 및 버그 보고 도구 3. 업데이트된 기기 탐색기 4. Composables을 실시간으로 업데이트하는 실시간 편집 기능 5. Compose 애니메이션 미리보기를 위한 추가적인 Compose API 지원 6. 새로운 Android SDK 업데이트 도우미 7. Gradle 빌드 스크립트의 Kotlin DSL 8. Gradle 동기화 중 정보 다운로드 기능 9. 앱별 언어 자동 지원 10. 선택한 모듈 도구 모음 버튼(toolbar button) 만들기 릴리즈 노트 : https://developer.android.com/studio/releases?hl=ko Android 스튜디..

깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)
개발/알고리즘2023. 7. 25. 13:05깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)

1. 깊이 우선 탐색 (DFS) 1.1 개념탐색 시작 노드로부터 한 방향으로 나아가 마지막 노드를 찍고 다음 분기로 넘어가는 것.위 방법을 통해 해당 분기를 완벽하게 탐색하는 방식. 1.2 동작 방식1. 탐색 시작 노드를 스택에 넣고 방문(BooleanArray[node] = true) 처리를 한다.2. 최상단 노드 인근에 방문하지 않는 노드가 있다면 해당 노드를 스택에 넣으며 방문처리를 한다. - 인접 노드가 여러 개 있다면 번호가 낮은 순으로 처리 - 인접 노드가 전부 방문한 노드라면 최상단 노드 꺼내기3. 2번의 과정을 더 이상 수행할 수 없을 때까지 반복. 1.3 적용1. 길 찾기2. 미로3. 경로의 특징을 저장해야하는 경우 1.4 구현val dfsList = mutableListOf()fun d..

개발/정보2023. 6. 16. 13:54모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스에서 무료 제공하는 CS 기초지식 학습용 입문 강의 https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org 해당 강의를 찬찬히 유튜브 동영상 보듯이 살펴보며 학부생때 배웠던 CS 기초지식을 다시끔 머리 속에 새겨본다. 잊어버린 것도 많고, 대충 들어서 이게 맞나 싶은 것도 많은데 시간이 남는다면 한번 훑어보면서 점검하는 것도 좋을 것 같다. 커리큘럼은 다음과 같다. 1. 컴퓨팅적 사고에서는 여러 CS 기초 상식을 알려주며, 스크래치를 사용해 알고리즘 구현에 대해 이해시킨다. 2. C언어에서는 프로그래밍 언어를 처음 배웠을 때 처럼 C를 사용하여 문자열, 조건문, 루프, 형식 지정자, 연산..

image