전체 글

코딩테스트/자료구조

Stack

가장 마지막으로 들어간 데이터가 먼저 나오는 LIFO(Last In First Out)의 성질을 가진 자료구조 특성 top으로 정한 곳을 통해서만 접근이 가능하다. top 은 가장 위에 있는 요소를 가리키며, 삽입되는 새 요소는 top 위에 쌓인다. top이 가리키는 요소가 추출/삭제된다. 삽입 연산을 push, 추출 연산을 pop이라 한다. 시간복잡도 삽입/삭제 : O(1) 탐색 : O(n) Stack 사용 with Python stack = [1, 2, 3] # push stack.append(4) # stack = [1, 2, 3, 4] # pop stack.pop() # 4 반환, stack = [1, 2, 3] # top stack[-1] # 마지막 인덱스의 데이터 = 제일 위에 있는 데이터 = 3

코딩테스트

알고리즘 성능 평가: 시간복잡도 & 공간복잡도

알고리즘의 성능을 평가하는 요소로 복잡도 (Complexity)를 사용한다. 복잡도에는 시간복잡도와 공간복잡도가 있으며, 동일한 기능을 수행하는 알고리즘이 있을 때 복잡도가 낮을수록 좋은 알고리즘이라 한다. 시간복잡도 (Time Complexity) : 특정한 크기의 입력에 대한 알고리즘의 수행시간 분석 공간복잡도 (Space Complexity) : 특정한 크기의 입력에 대한 알고리즘의 메모리 사용량 분석 시간복잡도 빅오 표기법 최상 (Big-Ω Notation), 평균 (Big-θ Notation), 최악 (Big-O Notation)의 세 표기법 중 최악의 경우를 계산하는 방식인 빅오표기법으로 경우를 판단하여 평균과 가까운 성능을 예측하는 방식 O(1) (Constant) 입력 데이터의 크기에 상관..

안드로이드

Android 액티비티 생명주기

액티비티 생명주기 Activity 의 모든 인스턴스는 생명주기를 갖는다. 생명주기 동안에 네 가지 상태 실행 재개 resumed 화면에서 전체를 보고, 포그라운드에서 작동 사용자가 현재 상호 작용 일시 중지 paused 액티비티가 포그라운드에서는 작동 X 화면의 일부가 보이는 중단 stopped 메모리 존재 O 뷰가 화면에서 완전히 가려졌을 때 존재하지 않음 nonexistent 메모리 존재 X 사용자가 보거나 상호작용하기 위한 뷰 X 으로 상호 전환된다. Activity 의 서브 클래스는 생명주기의 전환 시점에 생명주기 콜백 lifecycle callback 함수를 호출해 필요한 일을 처리 생명주기 콜백 Lifecycle callback onCreate(Bundle?) 위젯을 인플레이트해 뷰 객체로 생..

안드로이드

MVC, 모델 - 뷰 - 컨트롤러

객체들은 세 부분, 즉 모델, 컨트롤러, 뷰로 계층이 분리된다. 안드로이드 API 는 모델 - 뷰 - 컨트롤러라는 아키텍쳐에 맞추어 설계되었다. 애플리케이션의 어떤 객체든 모델 객체 (model object) 또는 뷰 개체 (view object) 또는 컨트롤러 객체 (controller object)가 되어야 한다는 것이 MVC 의 주요 관점이다. 모델 객체는 애플리케이션의 ‘데이터’와 ‘비즈니스 로직’을 갖는다. 모델 클래스는 앱과 관계가 있는 것들을 모델링한다. 모델 객체는 UI를 모른다. 데이터를 보존하고 관리하는 것이 유일한 목적이다. 뷰 객체는 자신을 화면에 그리는 방법과 터치와 같은 사용자의 입력에 응답하는 방법이다. 화면에서 볼 수 있는 것이라면 그것은 뷰 객체이다. 컨트롤러 객체는 뷰와 ..

안드로이드

View, Resource

뷰 (View) UI 를 만드는 데 사용되는 구성 요소로, 장치 화면에 보이는 모든 것이 뷰이다. 위젯 (Widget) 사용자가 화면을 보면서 상호 작용하는 뷰 (EX. 텍스트나 그래픽, 버튼 등) 모든 위젯은 뷰 클래스의 인스턴스이거나 뷰 의 서브클래스 (TextView나 Button 등) 중 하나의 인스턴스 뷰그룹 (ViewGroup) 뷰의 일종이며, 다른 뷰를 포함하고 배치해 화면에 보여주지만 그 자신은 화면에 나타나지 않는다. (EX. 레이아웃) 인플레이트 (inflate) 뷰 계층 구조에 따라 레이아웃 파일에 있는 각 위젯이 자신의 속성에 정의된 대로 인스턴스로 생성 리소스 (Resource) 애플리케이션의 일부이며, 코드가 아닌 이미지 파일이나 오디오 파일 및 XML 파일과 같은 것들 프로젝트..

CS/운영체제

메모리

3-2-1. 메모리 계층 레지스터 CPU 안에 있는 작은 메모리이며 데이터와 명령어를 저장하는 역할 가장 빠른 속도 휘발성 가장 작은 기억 용량 CPU 안에서 연산을 처리하기 위한 데이터를 저장하는 공간 캐시 (CPU 캐시) CPU의 성능을 향상시키기 위해 CPU 칩 안에 포함된 빠르고 작은 메모리 프로그램이 직접 읽기/쓰기가 불가능하며 메모리 관리 시스템 (MMU) 가 제어 메인 메모리에 있는 데이터를 캐시 메모리에 가져와 CPU가 필요한 데이터를 캐시에서 먼저 찾도록 한다. CPU 와 별도로 있는 공간이며 메인 메모리와 CPU 간의 속도 차이를 극복하기 위해 데이터를 저장하는 공간 💡 캐시는 데이터를 미리 복사해 놓는 임시 저장소이며, 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 ..

minux.
minux.log