전체 글
해쉬(Hash)
1. 해쉬 구조 해쉬 테이블 : 키(key)에 데이터(value)를 저장하는 데이터 구조 key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 파이썬 딕셔너리 타입이 해쉬 테이블의 예 : key를 가지고 바로 데이터(value)를 꺼냄 보통 배열로 미리 hash table 사이즈만큼 생성 후에 사용 (공간과 탐색 시간을 맞바꾸는 기법) 단, 파이썬에서는 해쉬를 별도 구현할 이유가 없음 - 딕셔너리 타입을 사용하면 됨 2. 알아둘 용어 해쉬 : 임의 값을 고정 길이로 변환하는 것 해쉬 테이블 : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해쉬 함수 : 키에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값 또는 해쉬 주소 : 키를 해싱 함수로 연산해서, 해..
BMI 계산기
목차 인트로 (완성앱 & 구현 기능 소개) Linearlayout 이용하여 화면 그리기 화면을 예쁘게 꾸며보기 키와 몸무게 입력 화면 기능 구현하기 (1) 키와 몸무게 입력 화면 기능 구현하기 (2) 결과화면 기능 구현하기 아웃트로 (정리) 이 챕터를 통해 배우는 것 Layout 을 그리는 법 LinearLayout 사용하기 TextView의 속성들과 사용하는 방법 EditText의 속성들과 사용하는 방법 Button 사용하는 방법 Layout과 Kotlin 코드를 함께 사용하기 버그 수정해보기 Activity에 대해 알아보기 Kotlin 문법 when 분기문 람다함수 BMI 계산하기 공식 = 몸무게(kg) / (키(m) * 키(m)) 18.5 이하면 저체중 18.5 ~ 23은 정상체중 23 ~ 25는 ..
자바 기초 _ [토픽2] 자바 객체 지향 프로그래밍 _ 객체 설계하기
- 접근 제어자 정리 - 접근 제어자 연습 - 메소드 오버로딩 정리 - 계좌 이체 - 생성자 정리 - 생성자 연습 - this 정리 - 특가 할인 매장 접근 제어자 정리 우리가 쓰고 있는 Person 클래스의 매우 간소화된 버전이다: Person.java public class Person { int age; } Driver.java public class Driver { public static void main(String[] args) { Person p1 = new Person(); p1.age = 28; System.out.println(p1.age); } } 그런데 사실 이건 굉장히 위험한 코드이다. p1.age = 28; 을 p1.age = -10; 으로 바꾸어도 아무 문제 없이 실행된다. ..
![자바 기초 _ [토픽2] 자바 객체 지향 프로그래밍 _ 객체 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbxntUO%2FbtrpcOvAb81%2FAAAAAAAAAAAAAAAAAAAAALb2C4eOZ4gIBVBVy1IjlB7xdsKpCDJfX6-0br5_Fdxs%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DRqRyvxKUJd3EVoODyuQodujsGOE%253D)
자바 기초 _ [토픽2] 자바 객체 지향 프로그래밍 _ 객체 만들기
객체 지향이란? 더보기 객체지향프로그래밍(Object Oriented Programming) 김모씨가 은행 계좌에 입금을 하고 출금을 한다. 그리고 또 최모씨의 계좌에 2만 원을 이체해 주려고 한다. 이 상황을 프로그램으로 어떻게 표현할 수 있을까? 이런 문제를 쉽게 해결할 수 있는 프로그래밍 방법이 바로 객체 지향 프로그래밍이다. 이 경우에는 Person이라는 객체와 BankAccount라는 객체를 만들 수 있다. 객체는 속성들과 동작들의 묶음이라고 할 수 있는데, 속성은 변수로 표현되고 동작은 함수로 표현된다. Person과 BankAccount에는 어떤 속성들과 어떤 동작들이 있을 수 있을까? Person 객체에는 이름, 나이, 보유 현금, 소유 계좌 등의 속성이 있을 것이다. BankAccount..
![자바 기초 _ [토픽1] 자바 왕기초 _ 배열](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FuVedV%2FbtrpcO99ySz%2FAAAAAAAAAAAAAAAAAAAAAH4pVyJe2X2_Ho8sgyEZ3dRLTxqWj41YtHPyKU0e-s4U%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DgoT7e4wEZSggZyg9lKCIeOOMRpE%253D)
자바 기초 _ [토픽1] 자바 왕기초 _ 배열
배열 정리 배열을 쓰면 변수 하나에 값을 여러 개 담을 수 있다. 자바의 배열을 만들고 사용하는 방법을 간단하게 살펴보자. 배열 생성 더보기 배열을 만드는 방법은 몇 가지가 있다. (1) 선언과 동시에 빈 배열 생성 int[] intArray = new int[5]; // 크기 5의 빈 배열 (2) 선언 후, 배열 생성 int[] intArray; intArray = new int[5]; // 크기 5의 빈 배열 위 두 개는 사실 거의 똑같다고 볼 수 있다. (3) 리터럴로 생성 int[] intArray = {1, 2, 3, 4, 5}; 이렇게 하면 5개의 원소가 있으니까 intArray는 자동으로 크기 5의 배열이 된다. 그런데 이 방식은 변수를 정의할 때만 할 수 있다. 밑에 코드처럼 두 줄에 나누..
자바 기초 _ [토픽1] 자바 왕기초 _ 조건문과 반복문
if, else if, else 정리 더보기 기본 문법(Syntax) if (조건부분 1) { // 수행 부분 1 } else if (조건 부분 2) { // 수행 부분 2 } else if (조건 부분 3) { // 수행 부분 3 } else { // 수행 부분 4 } 조건문의 기본 구조이다. 조건 부분 1이 true이면 수행 부분 1이 실행되고 수행 부분 2~수행 부분 4는 실행되지 않는다. 조건 부분 1이 false이면 수행 부분 1은 건너뛰고 조건 부분 2를 확인한다. 조건 부분 2가 true이면 수행 부분 2가 수행되고 조건문이 끝나게 된다. 조건 부분 1~조건 부분 3 모두 false이면 수행 부분 4가 실행된다. 예제를 몇 개 살펴보자. 예제 1 int number = 13; if (numb..
자바 기초 _ [토픽1] 자바 왕기초 _ 변수와 연산
변수 정리 더보기 변수 선언 변수 선언은 이렇게 type variableName; 앞에 자료형을 써주고 뒤에 변수 이름을 써주면 된다. 정수형을 담을 변수 a, 문자열을 담을 변수 s를 선언하기 위해서는 이렇게 써주면 된다. int a; String s; 변수 이름 규칙 변수의 이름을 지어줄 때 알아야할 규칙이 몇 가지 있다. 대소문자를 구분 합니다. codeit과 codeIt은 서로 다른 변수입니다. 숫자로 시작할 수 없습니다. 밑줄(_)과 달러 표시($)를 사용할 수는 있지만, 사용하지 않는 것이 좋습니다. $는 주로 자동 생성되는 변수명으로 쓰이고, _는 보통 상수 이름에 쓰입니다. class, public과 같은 자바의 예약어는 변수명으로 쓸 수 없습니다. 자바의 변수명은 '카멜 케이스(camel..
자바 기초 _ [토픽1] 자바 왕기초 _ Hello, Java!
자바와 객체 지향 자바와 객체 지향 더보기 자바와 객체 지향은 뗄 수 없는 개념이다. 자바는 처음부터 객체 지향 언어로 만들어졌다. 객체 지향 프로그래밍(Object Oriented Programming, OOP)은 프로그램을 작성하는 기법인데, 부품에 해당하는 객체를 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 말한다. 객체 지향이 잘 적용된 언어는 코드의 구조가 명확하기 때문에 코드를 이해하기 쉽고 관리와 유지 보수가 효율적이다. 언어와 함께 보기 더보기 객체 지향이 코드에 어떻게 드러날까? 다른 언어와 비교해 보자. 다음은 Hello라는 문구를 출력하기 위한 코드이다. Java버전 public class HelloWorld { public static void m..
배열
배열(Array) 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 파이썬에서는 리스트 타입이 배열 기능을 제공함 1. 배열은 왜 필요할까? 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 장점: 빠른 접근 가능 첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근) 단점: 데이터 추가/삭제의 어려움 미리 최대 길이를 지정해야 함 [C 언어 예: 영어 단어 저장] #include int main(int argc, char * argv[]) { char country[3] = "US"; printf ("%c%c\n", country[0], country[1]); printf ("%s\n", country); return 0; }..