인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조
같은 타입의 데이터들 순차적 저장->인덱스 이용해서 데이터 접근
자료형[] 배열명 = new 자료형[몇 개 만들지]
ex) int[] arr = new int[10] ->int형이 10개인 배열 생성
1차배열사용예제 푸는 중인데.. 오류가 나네유..
package baekjoon;
import java.util.Scanner;
public class Baekjoon12891 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int string_length = input.nextInt();
int part_string_length = input.nextInt();
String temp = input.nextLine(); // 엔터 먹기
String string = input.nextLine();
String[] string_arr= string.split("");//문자열을 받아서 한 알파벳씩 배열에 넣어줌
int[] arr = new int[4]; //부분문자열의 AGCT 개수를 넣을 배열
int[] AGCT_arr= new int[4];
for(int i=0; i<4; i++) {//AGCT의 최소 개수가 들어있는 배열
AGCT_arr[i] = input.nextInt();
}
int cnt=0;
for(int i=0; i<part_string_length;i++) {
if(string_arr[i].equals("A")) {
arr[0]++;
}
if(string_arr[i].equals("C")) {
arr[1]++;
}
if(string_arr[i].equals("G")) {
arr[2]++;
}
if(string_arr[i].equals("T")) {
arr[3]++;
}
}
for(int i=0;i<string_length-part_string_length+1;i++) {
if((arr[0]>=AGCT_arr[0])&&(arr[1]>=AGCT_arr[1])&&(arr[2]>=AGCT_arr[2])&&(arr[3]>=AGCT_arr[3])) {
cnt++;
}
//===================================
//기존 부분 문자열의 첫 문자의 갯수 제거
if(string_arr[i].equals("A")) {
arr[0]--;
}
if(string_arr[i].equals("C")) {
arr[1]--;
}
if(string_arr[i].equals("G")) {
arr[2]--;
}
if(string_arr[i].equals("T")) {
arr[3]--;
}
//======================================
//기존 부분 문자열에서 새로운 문자열 추가
if(string_arr[i+part_string_length].equals("A")) {
arr[0]++;
}
if(string_arr[i+part_string_length].equals("C")) {
arr[1]++;
}
if(string_arr[i+part_string_length].equals("G")) {
arr[2]++;
}
if(string_arr[i+part_string_length].equals("T")) {
arr[3]++;
}
}
}
}
해결하면 고치도록 하겠습네다
자료형[][]배열명=new 자료형[a][b]
a만 들어가거나 a,b 들어가게 생성해야함
*b만 있을 수는 x
a는 층 수, b는 방 수
2차 배열 만들기 예제
package week5;
import java.util.Scanner;
public class Main {
public static void setArray(int[][] arr) {
System.out.println("2차 배열을 0부터 초기화 합니다.");
for (int i = 0; i < arr.length; i++) {
for (int k = 0; k < arr[i].length; k++) {
arr[i][k] = 10 * i + k;
}
}
}
public static void showArray(int[][] arr) {
System.out.println("2차 배열을 출력합니다.");
for (int i = 0; i < arr.length; i++) {
for (int k = 0; k < arr[i].length; k++) {
System.out.printf("%3d", arr[i][k]);
}
System.out.println();
}
}
public static void main(String[] args) {
// 1. 정방행렬 만들기
// 2. 비정방행렬 만들기, 랜덤하게 입력받아서 !
int[][] arr1 = new int[3][10];// 3행 10열
int[][] arr2 = new int[10][];// 10행 n열
int[][] arr3 = null;// n행 m열
// 초기화: 0부터~
setArray(arr1);
showArray(arr1);
// 삼각형 모양 비정방 배열 만들기
for (int i = 0; i < arr2.length; i++) {
arr2[i] = new int[i + 1];
}
setArray(arr2);
showArray(arr2);
// 행, 열 모두 정해지지 않은 비정방 배열 만들기
System.out.print("몇 층짜리 건물을 만들까요? ");
Scanner input = new Scanner(System.in);
int 행 = input.nextInt();
// 행 크기의 배열 만들기
arr3 = new int[행][];
int room;
for (int i = 0; i < 행; i++) {
System.out.printf("%2d층에 만들고 싶은 방의 갯수는? :", i + 1);
room = input.nextInt();
arr3[i] = new int[room];
}
setArray(arr3);
showArray(arr3);
}
}