자바 초보에서 알고리즘 B형까지 도전기4 -배열 필수지식1-
1. 한줄에 여러개의 수가 있을 때 입력 받기
한 줄에 공백을 두고 10개의 수가 있다면, 반복문으로 sc.nextInt();를 10번 반복해서 받을 수 있을 것이다.
그런데 어딘가에 10개의 수를 모두 저장해두지 않으면, 나중에 다시 활용할 수 없을 것이다.
그러면 결국 10개의 수를 저장할려면 10개의 변수를 써야하는데..
int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
a1 = sc.nextInt();
a2 = sc.nextInt();
...
a10 = sc.nextInt();
10개야 뭐 어떻게 쓰더라도 100개, 1000개,... 면 언제 다 쓸까?
이럴 때 배열을 이용하면 쉽게 받을 수 있다.
정수형 배열은 다음과 같이 선언 가능하다.
//길이가 3인 정수형 배열 생성
int[] arr = new int[3];
//분리해서
int[] arr;
arr = new int[3];
길이가 n인 정수형 배열은 int[] arr = new int[n];으로 생성 가능하다.
혹은 길이를 사용하지 않고, 초기값을 처음부터 넣겠다면..
중괄호 { }안에 해당하는 원소를 넣는다
이 경우에 new int[]에서 []안에 배열의 크기를 넣으면 안된다.
//초기값을 처음부터 넣기
int[] arr = new int[]{ 5, 6, 10 };
배열 참조할 때는 python에서 인덱스 참조하는 것처럼 arr[0] = 5, arr[1] = 6, arr[2] = 10...
--------------------------------------------------------------------------------------------------------
아무튼 한 줄에 10개의 수를 입력 받아 배열에 저장할려면...
int[] arr = new int[10];으로 배열 생성하고
sc.nextInt()로 받아서 i번째 자리에 집어넣기
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < 10; i++) {
arr[i] = sc.nextInt();
}
2. 음수 인덱스
자바는 기본적으로 음수 인덱스가 불가능하다
길이가 n인 배열에서 마지막 원소에 접근하고 싶다면.. arr[n-1]로 접근해야겠다
3. final 키워드, Integer.MIN_VALUE, Integer.MAX_VALUE
변해서는 안되는 값에 선언할 수 있다.
final로 선언된 변수의 값을 바꾸려고 한다면 에러가 발생한다
final int INT_MIN = Integer.MIN_VALUE;
INT_MIN = 50; // 에러 발생
여기서 Integer.MIN_VALUE;는 자바에서 int범위에서 가장 작은 값을 의미함
참고로 Integer.MAX_VALUE는 자바에서 int범위에서 가장 큰 값이다.
위와 같이 final로 선언한 경우 바꿀려고 하면 에러남
이렇게 변하지 않는 상수에는 변수명을 전부 대문자로 쓰고 단어와 단어 사이에 _으로 연결해주는 관례가 있다.
주어진 배열에서 최댓값을 찾고자 할때, 최댓값 Integer.MIN_VALUE;로 초기화를 할 수 있다.
public class Main {
public static void main(String[] args) {
final int INT_MIN = Integer.MIN_VALUE;
int[] arr = new int[]{ -1, -5, -2, -5, -3, -9 };
int maxVal = INT_MIN;
for (int i = 0; i < 6; i++) {
if (arr[i] > maxVal) {
maxVal = arr[i];
}
}
System.out.println(maxVal);
}
}
'알고리즘 > Java 기초' 카테고리의 다른 글
핵심 자료구조 기본인 단일 연결리스트(linked list) 개념파악하기 (0) | 2023.02.24 |
---|---|
자바 자료구조1 -동적배열(ArrayList) (0) | 2023.02.23 |
자바 초보에서 알고리즘 B형까지 도전기3 -반복문 필수지식1- (0) | 2023.02.22 |
자바 초보에서 알고리즘 B형까지 도전기2 -사칙연산, 조건문 필수지식- (0) | 2023.02.21 |
자바 초보에서 알고리즘 B형까지 도전기1 -입력과 출력 필수지식- (0) | 2023.02.20 |