티스토리 뷰
Java Array(배열) 만들고 출력하기
배열 기초
배열은 int[] 로 선언 합니다 그냥 변수는 int로 시작하는데 배열은 int뒤에 []가 붙습니다.
예를들어 학생 1명의 국어, 영어, 수학 성적이 차례대로 100, 99, 98일 때 이 점수를 배열에 저장 했다가 총점을 구하는 기능을 아래와 같이 만들 수 있습니다.
public static void main(String[] args) {
int[] studentScore = {100, 99, 98};
System.out.println(String.format("총점:%d", studentScore[0] + studentScore[1] + studentScore[2]));
}
결과
총점:297
2차원 배열 사용
앞에서는 학생 한명의 성적을 구했지만 이번에는 학생 5명의 성적을 배열에 저장했다가 구하고 싶을 수 있습니다.
이럴 때 2차원 배열을 이용합니다. 2차원 배열은 int[][]로 선언 합니다. 1차원 배열은 앞에서 int[]로 선언 했고 여기에 []를 하나 더 불여서 int[][]로 선언 합니다.
아래 예제는 학생 5명의 국어, 영어, 수학 점수를 배열에 저장하고 출력하는 예제 입니다.
public static void main(String[] args) {
int[][] students = {
{100, 99, 98},
{99, 98, 97},
{98, 98, 97},
{97, 98, 97},
{96, 98, 97},
};
for (int[] student : students) {
System.out.println(String.format("국어:%d 영어:%d 수학:%d", student[0], student[1], student[2]));
}
}
결과
국어:100 영어:99 수학:98
국어:99 영어:98 수학:97
국어:98 영어:98 수학:97
국어:97 영어:98 수학:97
국어:96 영어:98 수학:97
package com.named.sports.test;
import org.junit.Test;
public class ArrayTest {
@Test
public void name() throws Exception {
int[][] ar = new int[3][3];
ar[0][0] = 1;
ar[0][1] = 2;
ar[0][2] = 3;
ar[1][0] = 4;
ar[1][1] = 5;
ar[1][2] = 6;
ar[2][0] = 7;
ar[2][1] = 8;
ar[2][2] = 9;
printMatrix(ar);
}
public void printMatrix(int[][] m){
try{
int rows = m.length;
int columns = m[0].length;
String str = "|\t";
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
str += m[i][j] + "\t";
}
System.out.println(str + "|");
str = "|\t";
}
}catch(Exception e){System.out.println("Matrix is empty!!");}
}
}
결과
| 1 2 3 |
| 4 5 6 |
| 7 8 9 |
https://stackoverflow.com/questions/5061912/printing-out-a-2-d-array-in-matrix-format
3*3 배열을 만들고 출력하는 소스코드이다.
int[][] ar2 = {
{10, 20, 30},
{40, 50, 60},
{70, 80, 90}
};
중괄호를 쓰면 위 처럼 길게 안써도 짧게 쓸 수 있다.
자바 Array를 이용한 10개의 팀이 경기하는 경기 수 순열 만드는 로직
public class TeamPermu {
private String[] teams = {"SS", "WO", "NC", "LG", "SK", "OB", "LT", "HT", "HH", "KT"};
public ArrayList<String[]> permutation(){
ArrayList<String[]> allCase = new ArrayList<>();
for ( int i = 0 ; i < teams.length ; i++){
for(int j = 0 ; j < teams.length ; j++){
// {"SS", "WO"}를 append to allCase
//두개가 같으면 넣지 않는다.
if(teams[i] != teams[j]){
String[] item = new String[2];
item[0] = teams[i];
item[1] = teams[j];
allCase.add(item);
}
}
}
return allCase;
}
public static void main(String[] args) {
ArrayList<String[]> allCase = new TeamPermu().permutation();
//넣은 것 출력함
for(String[] item : allCase){
for(int i = 0 ; i < item.length ; i++){
System.out.print(item[i]);
System.out.print(" ");
}
System.out.println("");
}
}
}
결과
SS WO SS NC SS LG SS SK SS OB SS LT SS HT SS HH SS KT WO SS WO NC WO LG WO SK WO OB WO LT
이렇게 야구팀 10개(SS는 삼성 등)가 경기를 할 수 있는 가지수는 10P9 로 90개 되겠다.
알파벳 n글자로 만들 수 있는 모든 조합
예를들어 n이 2라면
AA, AB, AC ... BA, BB, BC ... ZA... ZZ
n이 3이라면
AAA, AAB, AAC ... BAA, BAB ... ZZA .. ZZZ
핵심 로직
n번만큼 depth로 들어가는 반복문이 만들어 져야 한다.
2 "" -> p(1, A) -> p(0, AA)
-> p(0, AB)
-> p(0, AC)
-> p(0, AD)
-> p(0, AE)
-> p(0, AF)
...
-> p(0, AZ)
-> p(1, B)
-> p(1, C)
-> p(1, D)
-> p(1, E)
-> p(1, F)
....
-> p(1, Z)
코드
public class Permutation {
public void printStrings(int n, String prefix) {
if(n == 0){
System.out.println(prefix);
} else {
for (int i = 0; i < 26; i++) {
printStrings(n - 1, prefix + (char) (i + 65));
}
}
}
public static void main(String[] args) {
Permutation permutation = new Permutation();
permutation.printStrings(2, "");
}
}
end.
'Language > JAVA' 카테고리의 다른 글
JAVA_HOME 설정방법 (0) | 2018.02.22 |
---|---|
Java로 시간(time) 다루기 - yyyy-mm-dd형식 다루기, LocalDateTime 다루기 등 (1) | 2018.02.05 |
코틀린(Kotlin)을 해보자 - 제4편 .jar 만들고 실행하기 (0) | 2017.12.28 |
코틀린(Kotlin)을 해보자 - 제3편 그래들(Gradle)로 코틀린 빌드하기 (0) | 2017.12.27 |
코틀린(Kotlin)을 해보자 - 제1편 코틀린(Kotlin)으로 hello world 출력하기 (0) | 2017.12.27 |
- Total
- Today
- Yesterday
- docker container whale
- 싱가폴
- docker container tissue
- 이직
- 도커티슈박스
- docker container case
- 도커각티슈케이스
- 2017 티스토리 결산
- docker container
- 도커각티슈박스
- 개발자
- docker container tissue box
- Linux
- 도커컨테이너
- vim
- Sh
- 도커티슈케이스
- shellscript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |