[Algorithm]Javaアルゴリズム-配列
18275 ワード
Javaアルゴリズム-配列
アレイ宣言の初期化
int[] arr=new int[5]
> 0 0 0 0 0
// 값넣을때
arr[2]=2
>0 0 2 0 0
ArrayList<Integer> arr=new ArrayList<>();
-> 초기 크기 설정 안해도 arrayList 내부에서 스스로 설정 (10)
//값 넣을때
arr.add(2);
>2
最大値を求める
1. Math.maxの使用
->私は通常、簡単に最大値を求めることができないので、あまり使いません.
2.max変数の使用
最大値を持つインデックスや前後比較で誰が大きいかなどの問題についてmax変数を用いて解く.int max = list[0];
for (int i = 1; i < n; i++) {
if (list[i] > max) {
max = list[i];
answer++;
}
}
配列に値を入力
1.ArrayListのget関数
//피보나치
ArrayList<Integer> arr = new ArrayList<>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
arr.add(1);
arr.add(1);
for (int i = 2; i < n; i++) {
arr.add(arr.get(i - 2) + arr.get(i - 1));
}
2.String配列の場合、charAt
3.listの場合arr[i]
少数を得る(エラトステネス体)
import java.util.*;
public class 소수 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int result = 0;
int[] list = new int[n + 1];
for (int i = 2; i <= n; i++) {
// 자기 자신으로만 나눠지는 수 2,3 ....
if (list[i] == 0) {
result++;//소수++
//범위 전까지 배수 찾음
for (int j = i; j <= n; j = j + i) {
list[j] = 1;
}
}
}
System.out.print(result);
sc.close();
}
}
// 특정 수 가 소수인지 아닌지 판별
public static boolean isPrime(int num) {
if (num == 1)
return false;
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
すべての垂直および水平対角線を追加
//가로
for (int i = 0; i < n; i++) {
int max = 0;
for (int j = 0; j < n; j++) {
arr[i][j] = sc.nextInt();
max += arr[i][j];
}
answer = Math.max(max, answer);
}
//세로
for (int i = 0; i < n; i++) {
int max = 0;
for (int j = 0; j < n; j++) {
max += arr[j][i];
}
answer = Math.max(answer, max);
}
//대각선
int max1 = 0;
int max2 = 0;
for (int i = 0; i < n; i++) {
max1 += arr[i][i];
max2 += arr[i][n - i - 1];
}
2 Dアレイで中東を南北に移動
int[] dx = { 1, 0, -1, 0 };
int[] dy = { 0, -1, 0, 1 };
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
boolean flag = true;
for (int d = 0; d < 4; d++) {
int nx = i + dx[d];
int ny = j + dy[d];
if (nx >= 0 && nx < n && ny >= 0 && ny < n && arr[nx][ny] >= arr[i][j]) {
flag = false;
break;
}
}
if (flag) {
answer++;
}
}
}
Reference
この問題について([Algorithm]Javaアルゴリズム-配列), 我々は、より多くの情報をここで見つけました
https://velog.io/@jifrozen/Algorithm-자바-알고리즘-배열
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
int[] arr=new int[5]
> 0 0 0 0 0
// 값넣을때
arr[2]=2
>0 0 2 0 0
ArrayList<Integer> arr=new ArrayList<>();
-> 초기 크기 설정 안해도 arrayList 내부에서 스스로 설정 (10)
//값 넣을때
arr.add(2);
>2
int max = list[0];
for (int i = 1; i < n; i++) {
if (list[i] > max) {
max = list[i];
answer++;
}
}
//피보나치
ArrayList<Integer> arr = new ArrayList<>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
arr.add(1);
arr.add(1);
for (int i = 2; i < n; i++) {
arr.add(arr.get(i - 2) + arr.get(i - 1));
}
import java.util.*;
public class 소수 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int result = 0;
int[] list = new int[n + 1];
for (int i = 2; i <= n; i++) {
// 자기 자신으로만 나눠지는 수 2,3 ....
if (list[i] == 0) {
result++;//소수++
//범위 전까지 배수 찾음
for (int j = i; j <= n; j = j + i) {
list[j] = 1;
}
}
}
System.out.print(result);
sc.close();
}
}
// 특정 수 가 소수인지 아닌지 판별
public static boolean isPrime(int num) {
if (num == 1)
return false;
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
//가로
for (int i = 0; i < n; i++) {
int max = 0;
for (int j = 0; j < n; j++) {
arr[i][j] = sc.nextInt();
max += arr[i][j];
}
answer = Math.max(max, answer);
}
//세로
for (int i = 0; i < n; i++) {
int max = 0;
for (int j = 0; j < n; j++) {
max += arr[j][i];
}
answer = Math.max(answer, max);
}
//대각선
int max1 = 0;
int max2 = 0;
for (int i = 0; i < n; i++) {
max1 += arr[i][i];
max2 += arr[i][n - i - 1];
}
int[] dx = { 1, 0, -1, 0 };
int[] dy = { 0, -1, 0, 1 };
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
boolean flag = true;
for (int d = 0; d < 4; d++) {
int nx = i + dx[d];
int ny = j + dy[d];
if (nx >= 0 && nx < n && ny >= 0 && ny < n && arr[nx][ny] >= arr[i][j]) {
flag = false;
break;
}
}
if (flag) {
answer++;
}
}
}
Reference
この問題について([Algorithm]Javaアルゴリズム-配列), 我々は、より多くの情報をここで見つけました https://velog.io/@jifrozen/Algorithm-자바-알고리즘-배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol