전체 글 182

[RN] 🚫에러 일지 - SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.

말 그대로 SDK 경로를 찾을 수 없어서 발생하며, 주로 맥 -> 윈도, 윈도 -> 맥으로 프로젝트를 옮길 때 자주 발생하는 에러입니다. 안드로이드 스튜디오에 내 프로젝트 디렉터리로 가셔서 local.properties 파일을 한번 찾아보세요! 존재하지 않거나 경로가 잘못되어있을 가능성이 큽니다. 경로가 잘못되어 있다면 내 PC에 맞게 변경해주시면 됩니다 보통 윈도의 경우 c:\Users\'사용자 이름'\AppData\Local\android\adk 그리고 맥의 경우 /Users/'사용자 이름'/Library/Android/sdk sdk.dir=/Users/luna/Library/Android/sdk 이런 식으로 변경해주시면 됩니다.

[자료구조] 그래프

개념 및 용어 그래프 G는 하나 이상의 정점(혹은 노드)을 포함하는 집합 V와 두 정점의 쌍으로 구성되는 간선을 포함하는 집합 E의 순서쌍으로 정의함 (G = (V, E)) 간선(인접한다) 두 정점을 연결하는 선 두 정점 쌍으로 나타냄 무방향 그래프 간선의 방향성이 없음 정점 쌍이 순서를 나타낼 필요가 없으므로 {v1, v2}로 나타냄 n개의 정점을 갖을 때 최대 간선 개수: n(n-1)/2 차수: 정점에 연결된 간선들의 개수 방향 그래프 간선의 방향성이 있음 순서쌍 (v1, v2) n개의 정점을 갖을 때 최대 간선 개수: n(n-1) 진입 차수: 주어진 정점으로 향한 간선의 개수 진출 차수: 주어진 정점에서 시작하는 간선의 개수 정점의 차수: 진출 차수와 진입 차수의 합 다중 그래프: 두 정점을 잇는 ..

[자료구조] 멀티웨이 탐색 트리

m원 탐색 트리 트리의 노드가 m개 이하의 가지를 가질 수 있는 탐색 트리 → 같은 수의 노드를 갖는 이진 탐색 트리보다 낮은 높이의 m원 트리 이진 탐색 트리의 확장된 형태임 탐색 트리의 제한을 따르면서, 2개 이상 ~ m개 이하의 자식 노드를 가질 수 있음 노드의 구조 struct Mnode { int n; struct Rectype { struct Mnode * ptr, int key; struct Rectype *addr, } keyptrs[n-1]; struct Mnode *keyptrn; } 탐색 연산 일반적으로 노드의 가지 개수가 많을수록(서브 트리가 많을수록) 최대 탐색 시간이 짧아짐(트리의 깊이가 얕으므로 더 빨리 찾을 수 있음) struct Mnode *nodeptr; struct Re..

[프로그래밍 언어론] 객체지향과 다형성

추상 자료형 프로그래밍 언어의 추상화 추상화(abstraction) 복잡한 대상을 간략하게 나타내는 것 추상화 방법 추리기: 대상의 관심 있는 부분만 추려서 나타냄 삭제하기: 특별히 관심 없는 부분은 삭제하여 나타냄 프로그래밍 언어의 추상화 종료 제어 추상화(control abstraction): 복잡한 제어 과정을 단순하게 제공 자료 추상화(data abstraction): 복잡한 자료 구조를 단순하게 제공 프로그래밍 언어의 추상화 프로그래밍 언어의 추상화 지원 제어 추상화: 제어 구조, 서브프로그램으로 지원 → 어떻게 수행되는지는 숨기고 무엇이 수행되는지 나타냄 자료 추상화: 자료 구조, 추상 자료형으로 지원 → 자료 표현과 더불어 관련된 연산을 묶어서 나타냄 프로그래밍 언어의 추상화 발전 초기 프로..

CS 2023.12.05

[프로그래밍 언어론] 서브프로그램 구현

서브프로그램 구현 개요 서브프로그램 연결 서브프로그램 호출(call) 작업과 복귀(return) 작업 서브프로그램 호출 시 해야 할 작업 호출하는 서브프로그램의 상태 저장 인수 전달 복귀할 주소 저장 호출되는 프로그램으로 분기 서브프로그램 복귀 시 해야 할 작업 필요에 따라 형식인수 값 복사(out parameter) 함수의 경우, 반환값 전달 호출한 서브프로그램의 상태 복귀 호출한 서브프로그램으로 분기 활성 레코드 서브프로그램 호출에 필요한 공간 호출자의 상태 정보를 보관할 공간 인수를 저장할 공간 함수의 경우 반환값을 저장할 공간 복귀할 주소를 저장할 공간 활성 레코드(activation record) 수행 중인 서브프로그램에서 코드를 제외한 데이터 부분이 저장되는 형태 활성 레코드 틀 자체는 정적으..

CS 2023.12.05

[프로그래밍 언어론] 서브프로그램 개요

서브프로그램 개념 서브프로그램이란? 프로그램 컴퓨터가 실행할 명령어를 나열한 것 이 명령어 나열은 입력을 출력으로 전환함 서브프로그램 독자적인 입력과 출력을 갖춘 일부 프로그램 역시 명령어 나열로 구성되어 있음 서브프로그램의 입력: 인수 서브프로그램의 출력: 반환값 반환값이 없는 서브프로그램도 존재: 서브루틴 혹은 프로시저 서브프로그램의 특징 서브 프로그램으로 들어오는 입구는 하나이고, 나가는 출구는 여러 곳이 될 수 있음 대개 서브 프로그램의 맨 끝은 자동적으로 출구가 됨 변도의 return 문을 통해 출구를 지정할 수도 있음 호출자(caller, 서브프로그램을 호출한 서브프로그램)는 피호출자(callee, 호출된 서브프로그램)가 수행되기 전에 수행이 정지되며, 피호출짜의 수행이 완료되면 호출자로 제어..

CS 2023.12.05

[프로그래밍 언어론] 문장

선언문과 실행문 문장 처리를 나타내는 표현 데이터 처리를 위해 변수, 연산, 서브프로그램을 이용 문장의 구분: 선언문, 실행문 선언문(declaration) 변수나 서브프로그램을 이용할 수 있도록 준비를 해 줌 변수 선언문: 변수명, 타입 등을 바인딩 → 이후 해당 변수를 이용할 수 있음 서브프로그램 선언문: 서브프로그램의 프로토콜을 명시 → 이후 해당 서브프로그램을 이용할 수 있음 실행문 변수 및 서브프로그램을 이용하여 데이터를 처리함 실행문의 구분: 대입문, 제어문 대입문(assignment statement) 프로그램에서 가장 자주 사용되는 문장 변수의 값을 변경하는 문장 대입 연산자: 오른쪽 부분의 값을 왼쪽 변수의 값으로 대입 다중 대입문: 하나의 값을 여러 변수에 대입 타입 변환: 대입할 값의..

CS 2023.12.05

[프로그래밍 언어론] 수식

수식 피연산자와 연산자로 구성되어 하나의 값을 나타내는 표현 피연산자(operand): 데이터 표현 그대로이거나 값이 저장된 변수 연산자(operator): 연산을 수행하는 함수 기본 연산자: 덧셈 연산자, 곱셈 연산자 등 함수: 값을 반환하는 서브 프로그램 수식에 피연산자와 연산자가 모두 포함될 필요는 없음 수식과 문장의 차이 수식(expression): 값을 나타내는 표현 문장(statement) 처리를 나타내는 표현 → 처리: 수식의 연산, 프로그램의 수행 흐름 바꾸기, 화면에 값 출력하기 등 수식과 연산자 산술 연산자 사칙 연산자, 나머지 연산자, 부호 연산자 등 피연산자 개수에 따른 연산자 분류 단항 연산자: 1개의 피연산자 필요 이항 연산자: 2개의 피연산자 필요 연산자 우선순위 하나의 수식에..

CS 2023.12.05

[자료구조] BS, Splay, AVL, BB

BS(Binary Search, 이진 탐색 트리) 특정 데이터의 효과적인 검색을 위해 제한점을 가지는 이진 트리 특정 데이터의 검색과 노드의 삽입, 삭제 처리에 효과적인 이진 트리 트리를 구성할 때, 데이터의 탐색을 고려하여 구성하므로 탐색에 최적화된 이진 트리 키: 탐색, 삽입, 삭제 연산에서 비교의 대상이 되며, 이진 트리 노드에서 데이터를 대표하는 혹은 노드를 특정할 수 있는 값 노드 v_i의 키를 k_i라 할 때, 각 노드 v_i가 다음을 만족하는 이진 트리 v_i의 왼쪽 서브 트리에 있는 모든 노드의 키 값은 v_i의 키 값보다 작다 v_i의 오른쪽 서브 트리에 있는 모든 노드의 키 값은 v_i의 키 값보다 크다 중위순회를 통해 같은 순서 데이터를 만들어 낼 수 있는 다양한 BS 트리 BS 트리..