목표 Insertion Sort에 대해 설명할 수 있다. Insertion Sort 과정에 대해 설명할 수 있다. Insertion Sort를 Kotlin으로 구현할 수 있다. Insertion Sort의 특징을 이해하여 시간 복잡도와 공간 복잡도를 계산할 수 있다. 요약 Insertion Sort는 Selection Sort와 비슷하여 헷갈릴 수 있지만 좀 더 효율적인 정렬 알고리즘이다. Insertion Sort는 2번째 요소부터 시작하여 그 앞의 요소들과 대소 비교하여 삽입할 위치를 지정한 후 삽입할 위치 이후의 요소들을 한 칸씩 뒤로 미루면서 삽입하는 정렬 알고리즘이다. 최선의 경우에는 O(N) 이라는 빠른 효율성을 가지고 있어 다른 정렬 알고리즘의 일부로 사용될 만큼 좋은 정렬 알고리즘이다. 과..
목표 Selection Sort에 대해 설명할 수 있다. Selection Sort 과정에 대해 설명할 수 있다. Selection Sort를 Kotlin으로 구현할 수 있다. Selection Sort 의 특징을 이해하여 시간 복잡도와 공간 복잡도를 계산할 수 있다. 요약 Selection Sort는 원소를 넣을 위치를 지정해놓고 해당 위치에 넣을 원소를 선택하는 알고리즘이다. Insertion Sort와 헷갈릴 수가 있는데 Insertion Sort는 한 원소를 정한 후에 해당 원소가 들어갈 위치를 탐색하는 것이고 Selection Sort는 위치를 지정하고 해당 위치에 넣을 원소를 탐색한다. 과정 (오름차순) 주어진 배열 중에서 최소값을 찾는다. 찾은 최소값을 첫 번째 위치와 값을 교체한다. 첫 번..
거품 정렬 (Bubble Sort) 목표 Bubble Sort에 대해 설명할 수 있다. Bubble Sort 과정에 대해 설명할 수 있다. Bubble Sort를 Kotlin으로 구현할 수 있다. Bubble Sort의 특징을 이해하여 시간 복잡도와 공간 복잡도를 계산할 수 있다. 요약 Bubble Sort는 인접한 두 원소의 대소 비교하여 조건에 충족하지 않으면 자리를 바꾸는 정렬 알고리즘이다. 정렬과정에서 요소가 천천히 정렬되는 모습이 거품이 수면 위로 떠오르는 것 같다고 해서 Bubble Sort라고 부른다. 과정 (오름차순) 첫 번째 요소와 두 번째 요소를 비교하여 앞의 요소가 더 크다면 두 요소의 위치를 교환(Swap)한다. 1번 과정을 n-1번째 요소와 n번째 요소까지 반복하면 n번째에 가장 ..
https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net PyPy3으로는 어떻게든 돌아가는 로직이긴 한데 뭔가 오기가 생겨 Python3으로도 돌아가는 코드를 작성해보고 싶은 오기가 생겨서 작업하게 되었다. 일단 PyPy3으로 돌아가는 코드부터 알아보자. 1. PyPy3으로만 돌아가는 코드 기본 아이디어 빙산이 몇 개 연결되어 있는지 계산해주는 함수를 만들어준다. (DFS 순회) 빙산에 대한 정보를 ices 리스트에 넣어둔다. 빙산 목록에서 하나씩..
필요한 것은 총 4가지 입니다. Layout 파일에 ProgressBar 배치 ProgressBar에 적용할 애니메이션 xml 파일 애니메이션을 불러와서 progressBar에 적용하고 애니메이션을 실행하는 로직 적절한 때에 애니메이션을 취소해주는 로직 1. Layout 파일에 ProgressBar 배치 ... ... 원하는 곳에다가 ProgressBar를 배치해줍니다. 본 글의 내용과는 상관없지만 indeterminateTint와 indeterminateDrawable을 통해서 ProgressBar를 대체할 이미지와 색을 지정할 수 있습니다. 2. ProgressBar에 적용할 애니메이션 xml 파일 저 같은 경우에는 중앙을 중심점으로 0.8초를 주기로 한 바퀴를 무한히 도는 애니메이션을 적용하였습니다..
본 포스팅의 내용은 [깡샘의 안드로이드 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 안드로이드 프로그래밍]을 강력 추천합니다!! ANR(Application Not Responding) ANR은 액티비티가 사용자 이벤트에 반응하지 못 하는 상황을 이야기합니다. 좀더 자세히 말하자면 액티비티가 출력된 상황에서 사용자 이벤트에 5초 이내에 반응하지 못하면 시스템에서 액티비티를 강제로 종료하게 됩니다. 사용자들은 보통 이를 버그라고 인식하게 되겠죠. ANR은 특정 업무가 5초 이상의 시간이 걸려 사용자의 이벤트를 처리하지 못 하게 되는 경우에 발생합니다. 긴 시간이 걸리는 업무 처리가 많지 않을 것 같지만 앱을 개발하다 보면 5초 이상의..