⭕ 자바 Java | 알고리즘 | 배열
배열은 동일한 자료형의 데이터를 일렬로 나열한 자료구조입니다. 각 요소는 인덱스를 통해 접근할 수 있습니다. 배열은 프로그래밍에서 매우 일반적으로 사용되며, 메모리 상에서 연속된 공간에 요소를 저장합니다.
➡️ 배열의 특징
- 인덱스를 사용하여 값에 바로 접근할 수 있다: 배열은 각 요소마다 고유한 인덱스가 있으므로, 해당 인덱스를 사용하여 배열 내의 요소에 직접 접근할 수 있습니다.
- 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다: 배열의 특정 위치에 새로운 값을 삽입하거나 삭제하려면, 해당 위치 이후의 모든 요소를 이동시켜야 합니다. 이는 성능상의 문제를 유발할 수 있습니다.
- 배열의 크기는 선언할 때 지정할 수 있으며, 변경할 수 없다: 배열을 선언할 때 크기를 지정하고, 이 크기는 변경할 수 없습니다. 필요한 경우 크기를 조정하려면 새로운 배열을 만들고 데이터를 복사해야 합니다.
- 구조가 간단하므로 코딩테스트에서 많이 사용한다: 배열은 간단하고 직관적인 자료구조이므로, 프로그래밍 문제 해결에 자주 활용됩니다. 특히 코딩 테스트에서 배열과 관련된 문제들이 자주 출제됩니다.
➡️ 배열의 활용
- 데이터 집합의 순서를 유지해야 할 때
- 동일한 유형의 데이터를 일괄 처리해야 할 때
- 특정 위치에 있는 데이터에 빠르게 접근해야 할 때
➡️ 배열의 한계
- 크기가 고정되어 있어 크기를 동적으로 조정하기 어렵다.
- 요소의 삽입, 삭제에 대한 비용이 높다.
- 배열의 연속된 메모리 공간에 데이터를 저장하므로, 연속적인 메모리 공간을 할당하는데 한계가 있다.
➡️ 배열 요소의 합 구하기
주어진 배열의 모든 요소를 더하여 합계를 계산하고 출력하는 자바 프로그램입니다. 배열의 각 요소를 반복하여 합계를 구하고, 그 값을 반환합니다. 반환된 합계는 메인 함수에서 출력되어 콘솔에 표시됩니다.
public class ArraySum {
public static int sum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
System.out.println("배열 요소의 합: " + sum(arr));
}
}
➡️ 배열 요소의 최댓값 구하기
배열에서 최댓값을 찾아서 반환하는 자바 프로그램입니다. 배열의 각 요소를 반복하면서 현재까지의 최댓값과 비교하여 더 큰 값을 최댓값으로 갱신합니다. 최종적으로 최댓값을 반환하고, 이를 메인 함수에서 출력하여 콘솔에 표시합니다.
public class MaxArray {
public static int findMax(int[] arr) {
int max = Integer.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
public static void main(String[] args) {
int[] arr = {5, 9, 1, 4, 7};
System.out.println("배열 요소의 최댓값: " + findMax(arr));
}
}
➡️ 배열 요소의 평균값 구하기
배열의 요소들의 평균값을 계산하여 반환하는 자바 프로그램입니다. 배열의 모든 요소를 반복하여 합계를 구한 후 배열의 길이로 나누어 평균을 계산합니다. 이 평균값은 메인 함수에서 출력되어 콘솔에 표시됩니다.
public class AverageArray {
public static double findAverage(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return (double) sum / arr.length;
}
public static void main(String[] args) {
int[] arr = {3, 6, 9, 12, 15};
System.out.println("배열 요소의 평균값: " + findAverage(arr));
}
}
➡️ 배열 요소의 역순으로 출력하기
주어진 배열의 요소들을 역순으로 출력하는 자바 프로그램입니다. 배열의 마지막 요소부터 처음 요소까지 반복하여 출력하면서, 각 요소 뒤에 공백을 추가합니다. 이렇게 출력된 요소들은 메인 함수에서 "배열 요소 역순 출력:"과 함께 출력되어 콘솔에 표시됩니다.
public class ReverseArray {
public static void reverse(int[] arr) {
for (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr[i] + " ");
}
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
System.out.println("배열 요소 역순 출력:");
reverse(arr);
}
}
➡️ 배열 요소의 특정 값 찾기
주어진 배열에서 특정한 값의 인덱스를 찾는 자바 프로그램입니다. 배열의 모든 요소를 반복하면서, 각 요소가 찾고자 하는 값과 일치하는지 확인합니다. 만약 일치하는 값이 발견되면 해당 요소의 인덱스를 반환하고, 일치하는 값이 없는 경우에는 -1을 반환합니다. 이 반환된 결과는 메인 함수에서 해당 값이 배열 내에서 찾아졌는지 여부에 따라 적절한 메시지와 함께 출력됩니다.
public class FindElement {
public static int find(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1; // 찾는 값이 배열에 없는 경우
}
public static void main(String[] args) {
int[] arr = {3, 6, 9, 12, 15};
int target = 9;
int index = find(arr, target);
if (index != -1) {
System.out.println("배열에서 " + target + "의 인덱스: " + index);
} else {
System.out.println("배열에서 " + target + "을(를) 찾을 수 없습니다.");
}
}
}
'프론트엔드 > 알고리즘' 카테고리의 다른 글
파이썬 Python | 알고리즘 | 시간 복잡도 (63) | 2024.06.12 |
---|---|
파이썬 Python | 문자열: count 함수 (81) | 2024.04.21 |
파이썬 Python | 알고리즘 | Greedy algorithm(그리디 알고리즘, 탐욕법) (70) | 2024.03.09 |
파이썬 Python | 알고리즘 | Coding Test 준비 (69) | 2024.03.09 |
자바 Java | 알고리즘 | 자료구조(Data Structure) - 배열(Array) 리스트(List) (83) | 2024.01.10 |
자바 Java | 알고리즘 | 디버깅 (81) | 2024.01.09 |
자바 Java | 알고리즘 | 시간복잡도 (82) | 2024.01.08 |
자바 JAVA | 백준 9498번 시험 성적 | 조건문을 이용한 시험 성적 출력 프로그램 (0) | 2022.09.28 |