[자료구조] 배열(Array)
배열
배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조입니다.
배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있습니다.
연속적인 메모리 공간에 순차적으로 데이터를 저장하며 선언시 정한 크기가 고정이 됩니다.
선언된 값은 다시 배열을 선언하지 않으면 변경이 어렵습니다.
○ 배열의 특징 - Summary
1) 인덱스를 사용하여 값에 바로 접근할 수 있습니다.
2) 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵습니다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요합니다.
3) 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없습니다.
(이 부분 때문에 ArrayList를 사용하는 경우도 종종 있습니다)
4) 구조가 간단하므로 코딩 테스트에서 많이 사용합니다.
○ 배열 활용 방법
1) 배열 선언 -> 2) 배열에 메모리 할당 -> 3) 배열 요소의 사용
1) 배열 선언
int[] a; // int 자료형 배열 생성
or
int a[];
char[] b; // char 자료형 배열 생성
or
char b[];
String[] c; // String 자료형 배열 생성
or
String c[];
double[] d; // double 자료형 배열 생성
or
double d[];
2) 메모리 할당
a = new int[10]; // a는 int형의 10개의 방 생성
b = new char[10]; // b는 char형의 10개의 방 생성
c = new String[10]; // c는 String형의 10개의 방 생성
d = new double[10]; // d는 double형의 10개의 방 생성
3) 배열 요소 사용
a[0] = 1; // 배열의 0번째 방에 1을 넣는다.
b[1] = 'A'; // 배열의 1번째 방에 'A'를 넣는다.
c[2] = "안녕하세요"; // 배열의 2번째 방에 "안녕하세요"를 넣는다.
d[3] = 3.14159; // 배열의 3번째 방에 3.14159를 넣는다.
○ 배열 관련 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public class Test06
{
public static void main(String[] args)
{
System.out.println("10개의 방에 1~100사이의 2의 배수 10개 넣기");
int[] a = new int[10]; // 10개의방(배열) 선언
int j = 2; // 짝수로 변할 수, 배열방에 들어갈 숫자
for(int i=0;i<a.length;i++)
{
a[i] = j; // i번째 방에 j값을 넣어준다.
j += 2; // j를 2만큼 증가시킨다.
}
for(int k=0;k<a.length;k++) // 출력용 for문
{
System.out.print(a[k]+ " ");
}
System.out.println();
}
}
|
cs |
○ 배열 관련 알고리즘 문제
https://www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
☆ 참고
https://velog.io/@hanif/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EB%B0%B0%EC%97%B4
https://godjaejun.tistory.com/56
'알고리즘 지식 > 자료구조' 카테고리의 다른 글
[자료구조]슬라이딩 윈도우 With 투 포인터 (0) | 2022.12.26 |
---|---|
[자료구조]브루트 포스 (2) | 2022.12.25 |
[자료구조]투 포인터 (2) | 2022.12.24 |
[자료구조]스택(Stack), 큐(Queue) (1) | 2022.12.23 |
소수(Prime Number) - 에라토스테네스의 체 (Java) (0) | 2022.12.18 |
댓글
이 글 공유하기
다른 글
-
[자료구조]브루트 포스
[자료구조]브루트 포스
2022.12.25 -
[자료구조]투 포인터
[자료구조]투 포인터
2022.12.24 -
[자료구조]스택(Stack), 큐(Queue)
[자료구조]스택(Stack), 큐(Queue)
2022.12.23 -
소수(Prime Number) - 에라토스테네스의 체 (Java)
소수(Prime Number) - 에라토스테네스의 체 (Java)
2022.12.18