일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Counting
- geometry
- Method
- java
- array
- Math
- Class
- simulation
- Data Structure
- bit manipulation
- 파이썬
- string
- greedy
- Stack
- database
- 코딩테스트
- Matrix
- 자바
- hash table
- SQL
- dynamic programming
- 코테
- Tree
- Number Theory
- implement
- sorting
- Binary Tree
- Binary Search
- 구현
- two pointers
- Today
- Total
목록Java (109)
코린이의 소소한 공부노트

데이터를 다룰 때 우리는 다음과 같은 것들을 이용한다. 1. 변수 - 하나의 데이터를 저장할 수 있는 공간 - 타입에 따라 공간의 크기가 다름 - 자세한 설명은 2021.12.06 - [Java] - 변수의 데이터 타입(data type) 2. 배열 - 같은 종류의 여러 데이터(변수)를 하나로 저장할 수 있는 공간 - 배열의 크기를 정하면 (배열의 크기) * (타입에 따른 변수의 크기)만큼 공간이 할당됨 - 자세한 설명은 2022.01.14 - [Java] - 배열 (1) 선언과 생성, 인덱스 3. 구조체 - 서로 관련된 여러 데이터를 하나로 저장할 수 있는 공간 - 배열과는 다르게 종류에 상관없이 한 구조체에 담을 수 있음 - 자바에서는 이를 딱히 지칭하는 말은 없음 4. 클래스 - 서로 관련된 데이터..

객체가 생성되면 메모리 어느 공간에 객체가 자리 잡게 되고, 그곳의 주소를 참조변수에 담아 객체를 사용할 수 있게 된다. 객체 배열은 이런 참조변수의 배열을 말하는 것이다. 물론, 타입은 같아야 한다. 사람 객체 3개를 만들어보자. 2가지로 나눠서 생성해보려고 한다. 1. 객체 3개를 각각 생성하는 경우 // 1)-1 3개의 참조변수를 생성한다. Person p1, p2, p3; // 1)-2 객체를 생성해 참조변수와 연결시켜준다. p1 = new Person(); p2 = new Person(); p3 = new Person(); // 2) 귀찮으니까 동시에 한다. Person p1 = new Person(); Person p2 = new Person(); Person p3 = new Person();..

객체는 실제로 존재하는 사물 또는 개념을 뜻한다. 이러한 객체를 정의해 놓은 것을 자바에서는 클래스라고 부른다. 클래스는 객체를 생성하는 데 사용하고, 객체는 객체가 가지고 있는 기능과 속성에 따라 그 쓰임새가 다르다. 클래스를 제품 설계도라고 한다면 객체는 그것을 이용해서 만든 제품이라고 생각하면 된다. 특정 클래스에서 만든 객체를 지칭할 때는 객체보다 인스턴스라는 표현을 많이 쓰고, 모든 인스턴스를 통틀어서 표현할 때는 객체라고 표현한다. (비유 예시 - 붕어빵 틀로 찍어낸 붕어빵들 중 슈크림 붕어빵을 가장 좋아한다.) 1. 클래스 클래스에는 객체의 속성, 기능이 정의되어있다. 예를 들어 사람 클래스에 다음과 같은 속성과 기능이 있다고 해보자. - 속성: 이름, 나이, 현재 상태(자는지 깨어있는지) ..

전에 주를 이루던 코볼(Cobol), 포트란(Fortran), C언어 등은 코드를 위에서 아래로 순서대로 실행하는 절차적 프로그래밍 언어다. 그러나 이런 언어들은 빠르게 변화는 시스템의 요구를 쫓아가지 못해 점차 쓰지 않게 되었다. - 절차 지향 언어는 코드의 재사용성이 크게 떨어진다. - 적은 노력으로 변경에 대응할 수 있는 유지보수성이 떨어진다. 이에 대한 해결책으로 도입하게 된 것이 시뮬라(Simula), 스몰톡(Smalltalk) 등의 객체지향 언어였다. C언어도 이후 C++로 발전했으나 받아들이기 어려웠던 부분들이 있어 이런 단점을 보완해 자바(Java)가 나오게 되었고, 이보다 더 간결하면서 직관적인 파이썬(Python)까지 이어지게 되었다. 객체지향 프로그래밍(Object-oriented p..

Arrays클래스는 배열 관련 메서드를 모아놓은 클래스이다. 이 중 많이 쓰는 메서드 몇 가지를 보려 한다. 1. 배열의 내용을 문자열로 출력하기 1) 1차원 배열의 내용을 출력할 때 이용하는 메서드 toString() int[] arr1d = {0, 1, 2, 3}; System.out.println(Arrays.toString(arr1d)); // [0, 1, 2, 3] 2) 2차원 이상의 배열의 내용을 출력할 때 이용하는 메서드 deepToString() int[][] arr2d = { {00, 01}, {10, 11} }; System.out.println(Arrays.deepToString(arr2d)); // [[0, 1], [10, 11]] // 2차원 배열에 toString()을 쓰면 어떻..

String 클래스는 문자배열(char[])에 기능(메서드)를 결합해놓은 것을 말한다. char[]로 문자열을 나타내도 크게 상관은 없지만, 사용자에게 여러 메서드를 제공해서 편의성을 높이기 위해 문자열을 클래스로 만들어놓은 것이다. 왼쪽 str은 문자열, 오른쪽 arrChar는 문자 배열이다. 변수 이름을 쓰고 마침표를 찍으면 사용 가능한 메서드 또는 상수들이 나오는데, 왼쪽에는 스크롤이 생길 정도로 여러 가지가 있는 반면 오른쪽은 스크롤도 생기지 않는 것을 볼 수 있다. 즉 문자열에 더 많은 기능이 제공되고 있다는 것이다. String 클래스의 메서드는 여러 가지가 있지만, 자주 쓰는 몇 가지만 소개하겠다. 1. char charAt(int index): 해당 인덱스의 문자를 반환한다. // inde..

2차원 배열은 테이블(표) 형태의 데이터를 저장하기 위한 배열로, 1차원 배열 여러 개가 합쳐진 모양이라고 생각하면 된다. 1) 왼쪽 - 길이가 3인 1차원 배열(굵은 테두리)들이 보인다. - 그 1차원 배열이 4줄 쌓여있다. - 즉, 이 테이블의 데이터는 4행 3열이다. - 2차원 배열을 생성할 때는 배열 기호 [ ]를 2개 쓴다. 2) 오른쪽 - 테이블이 여러 개 쌓여있다. - 2차원 배열이 여러 개 모이면 3차원 배열이 된다. 그럼 2차원 배열의 인덱스는 어떻게 봐야 하는 걸까? 1) 행 - 가로로 한 줄이 한 행을 나타낸다. 그래서 행 인덱스는 세로로 쓰게 된다. - 4행이므로 행 인덱스의 범위는 0 ~ 4-1 -> 0부터 3까지다. 2) 열 - 세로로 한 줄이 한 열을 나타낸다. 그래서 열 인덱..

배열은 같은 타입의 변수가 여러 개 붙어있는 형태이기 때문에, 반복문을 쓰기에 아주 좋다. 1. 평균 구하기 // 1) 필요한 변수 생성 int sum = 0; // 총합 float average = 0f; // 평균 // 2) 평균을 구할 점수들을 int배열에 입력 int[] score = {50, 80, 75, 100, 90, 60}; // 3) 점수들을 모두 합해 sum에 저장 for ( int i=0; i 0번째에 저장 num[n] = tmp; // tmp의 값 -> n번째에 저장 } // 3) 섞은 결과 확인해보기 System.out.println(Arrays.toString(num)); // [4, 1, 5, 8, 4, 2, 0, 6, 3, 7, 9] 0번만 바꾸는 게 이상하다면, 아래 그림을..

배열은 생성하면 자동 초기화가 된다. 초기화 값은 배열 타입의 기본값이다. 예를 들어 int 타입 배열을 생성하면 int의 기본값인 0으로 초기화가 된다. 왜 자동 초기화를 시키는지 궁금할 것이다. 변수도 그렇고 배열도 초기화를 해야 사용 가능하다. 그렇지만 변수와는 다르게 배열은 값이 여러 개이기 때문에 자동 초기화가 되지 않는다면 우리가 하나하나 정성스럽게 초기화를 시켜주는 작업을 해야 한다. 이런 수고로움을 덜고자 배열 생성 시 해당 타입의 기본값으로 자동 초기화를 시켜놓고, 사용자가 원하는 대로 값을 저장하게끔 해놓았다. 배열에 값을 초기화(처음으로 값을 저장)하는 방법은 다음과 같다. int[] arr = new int[6]; // 길이가 6인 int타입 배열 생성 // 1) 각 요소에 직접 저..

배열이란 같은 타입인 여러 개의 변수를 하나로 묶어놓은 것을 말한다. 쉽게 말하면 변수들이 줄줄이 소시지처럼 붙어있는 것이다. 배열을 선언할 때는 다음 2가지 방법 중 하나를 골라서 하면 된다. 배열을 선언한다는 것은 배열을 다루기 위한 참조변수를 선언한다는 것이다. // 1) 타입[] 변수이름; int[] num; String[] text; // 2) 타입 변수이름[]; int num[]; String text[]; 1) 자바에서는 배열기호 [ ]를 타입의 일부분으로 보기 때문에 대괄호를 타입 옆에 쓴다. 이 설명을 듣고 봐서 그런지 코드를 읽을 때도 int배열 num으로 읽히니 더 편한 것 같은 생각이 든다. 2) C언어에서 쓰는 방법을 함께 지원한다. 배열을 선언했을 때 배열을 다루기 위한 참조변수..