전체 글
[ Dart ] 객체 지향 프로그래밍
인스턴스 생성 💬 new 키워드를 생략하여 인스턴스화할 수 있다. var person = new Person(); var person2 = Person(); 접근 지정자 💬 변수명 앞에 _ 기호가 있으면 private, _ 기호가 없으면 public이다. 게터, 세터 💬 변수명 앞에 _가 붙어 private 변수인 경우, 클래스 외부에서 접근하기 위해서는 게터와 세터 메서드를 작성해줘야 한다. class Person { String _name; String get name => (_name == null) ? 'Ryong' : _name; set name(String name) => _name = name; } main() { Person person = Person(); person.name = 'He..
[ Dart ] 분기와 반복
삼항 연산을 활용한 분기 [ 조건 ] ? [ 참일 때 ] : [ 거짓일 때 ] var todo = isRainy ? '빨래를 하지 않는다' : '빨래를 한다'; switch case 💬 여러 요소들을 검사할 때 switch case를 사용한다.
[ Dart ] 함수
함수 💬 리턴 타입으로는 모든 타입과 void를 지정할 수 있으며, void는 생략이 가능하다. print() 함수 💬 원하는 메시지를 출력하는 함수 💬 변수 앞에 $ 기호를 붙여서 문자열 내에 변수를 삽입할 수 있다. 방법은 코틀린과 동일하다. String _name = 'Ryong'; int _age = 20; main() { print('$_name은 $_age살입니다.'); print('$_name은 ${_name.length} 글자입니다.'); } 최상위 함수 💬 클래스 밖에 작성하는 함수로, 어디에서나 호출할 수 있다. 💬 클래스 내부에 선언된 함수이더라도 static 키워드를 붙이면 최상위 함수처럼 사용할 수 있다. 익명 함수 ([인수명]) { [동작 또는 반환값] } (number) { r..
![[ Dart ] 기본 문법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEuWz8%2FbtronJoCKBO%2F9p7IKt7HknVWjMwAKLKdyK%2Fimg.png)
[ Dart ] 기본 문법
다트 코드 실행 사이트 https://dartpad.dev DartPad dartpad.dev 주석 💬 // : 한줄 주석 💬 /* ... */ : 여러 줄 주석 💬 /// : 문서 주석 문장 💬 문장 끝은 항상 세미콜론으로 표시 변수 기본 타입 String name = "Ryong"; bool b = true; int i = 10; double d = 10.0; 💬 int와 double은 num 타입에 포함된다. ◻️ 하지만, 타입 추론 지원으로 인해 num 타입은 잘 쓰지 않는다. 💬 다트에서는 자동 형변환을 지원하지 않는다. int a = 10; double b = a; // 에러 💬 num 타입에는 int와 double 타입 모두 대입할 수 있다. int a = 10; double b = 20.0..

연결 리스트
포인터로 연결 리스트 만들기 public class LinkedList { // 노드 class Node { private E data; // 자기 자신의 데이터 private Node next; // 다음 노드를 가리키는 포인터 // 생성자 Node(E data, Node next) { this.data = data; this.next = next; } } private Node head; // 머리 노드를 가리킨다. private Node crnt; // 현재 선택한 노드를 가리킨다. public LinkedList() { head = crnt = null; } } 💬 head는 머리 노드에 대한 참조이지, 머리 노드 그 자체가 아님을 주의해야 한다. 💬 비어있는 연결 리스트는 노드도 없고, head..
![[ Flutter ] 초기 설정](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLbWdm%2FbtroXObAIv4%2FflCO2baD157YHp3qLm3NPk%2Fimg.png)
[ Flutter ] 초기 설정
환경 변수 등록 💬 플러터의 명령 파일은 bin 폴더에 들어 있다. 💬 파일이 들어 있는 경로를 운영체제의 환경 변수에 등록해두면 어디에서나 플러터 명령을 사용할 수 있다. 환경 구성 검사 flutter doctor 💬 플러터를 개발할 환경 구성이 잘 되어있는지 확인 핫 리로드 💬 수정한 코드를 추가 빌드 없이 즉시 앱에 반영하는 기능 코드 자동 완성 기능 StatelessWidget 클래스 빠르게 작성하기 StatefulWidget 빠르게 작성하기
[ Android ] [ Kotlin ] 초기 설정
Gradle 변경 사항 build.gradle (:app) plugins { id 'kotlin-kapt' } android { compileSdkVersion rootProject.compileSdkVersion buildFeatures { dataBinding true } defaultConfig { minSdkVersion rootProject.minSdkVersion targetSdkVersion rootProject.targetSdkVersion } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$rootProject.kotlin_version" implementation "androidx.core:core-ktx:$ro..

문자열 검색
브루트-포스법 💬 주어진 텍스트에 검색하고자하는 패턴 문자열이 포함되어 있는지를 확인하는 문자열 검색 방법 💬 텍스트와 패턴에 문자열을 하나씩 검색하는 포인터를 설정하여 하나씩 이동하면서 같은지 검사한다. 💬 검사할 때마다 문자열이 다를 경우, 텍스트 포인터를 하나씩 늘려가며 검사한다. 💬 하지만, 검사를 진행한 위치를 기억하지 못하므로 효율이 좋지 않은 알고리즘이다. class BFmatch { // 브루트-포스법으로 문자열을 검색하는 메서드 static int bfMatch(String txt, String pat) { int pt = 0; // txt 커서 int pp = 0; // pat 커서 while (pt != txt.length() && pp != pat.length()) { if (txt..
배열로 집합 만들기
public class IntSet { private int max; // 집합의 최대 개수 private int num; // 집합의 요소 개수 private int[] set; // 집합 본체 // 생성자 public IntSet(int capacity) { num = 0; max = capacity; try { set = new int[max]; // 집합 배열 생성 } catch (OutOfMemoryError e) { max = 0; // 배열 생성 실패 } } // 집합의 최대 개수 public int capacity() { return max; } // 집합의 요소 개수 public int size() { return num; } // 집합에서 n을 검색(index 반환) public int..