국비 Day 07 : Array
예제
🌟예제1🌟
import java.util.*;
public class Test01 {
public static void main(String[] args) {
// 정수 배열 변수 선언, 초기화
int[] arr = new int[6];
// 배열의 길이를 알아내고
int len = arr.length;
for(int i = 0 ; i < len ; i++) {
// 배열에 기억된 데이터를 꺼내서
int no = arr[i];
// 출력
System.out.println(no);
// 데이터 타입 변수는 Heap에 올라가는 순간 모두 자동 초기화
}
// String 타입 배열 선언, 초기화
String[] veg = new String[3];
// 출력
for(int i = 0 ; i < veg.length ; i++) {
System.out.println(veg[i]);
// 객체 타입이라 null이 출력된다. 에러 발생은 X
}
}
}
🌟예제2🌟
public class Test02 {
pulic static void main(String[] args) {
// 6개의 숫자를 추첨하는 복권 만들기
int[] lotto = new int[5];
// 번호 중복검사를 하고 빠져나올 수 있게 레이블 작성
loop:
for(int i = 0 ; i < lotto.length ; i++) {
int num = (int)(Math.random() * (45 - 1 + 1) + 1);
// 중복 숫자가 있으면 회차를 반복
for(int j = 0 ; j < i ; j++) {
int tmp = lotto[j];
if(num == tmp) {
i--;
continue loop;
}
}
// 배열에 채워넣기
lotto[i] = num;
}
// 출력 생략
}
}
🌟예제3🌟
1 ~ 10 사이의 정수를 순서대로 배열에 기억시키고 랜덤하게 섞어서 출력
public class Test03 {
public static void main(String[] args) {
// 1 ~ 10을 기억하는 배열을 만든다.
int[] num = new int[10];
for(int i = 0 ; i < num.length ; i++) {
num[i] = i + 1;
}
// 순서대로 기억시킨걸 출력
for(int no : num) {
System.out.print(no + " | ");
}
// 임의의 숫자 두개의 위치를 랜덤하게 만들어 swapping
for(int i = 0 ; i < 1000 ; i++) {
int idx1 = (int)(Math.random() * (9 - 0 + 1) + 0);
int idx2 = (int)(Math.random() * (9 - 0 + 1) + 0);
// 위치값이 같을 경우 횟수 초기화
if(idx1 == idx2) {
i--;
continue;
}
// 원래 첫 위치의 데이터를 변수에 기억시키고
int tmp = num[idx1];
// 두번째 위치의 데이터를 첫번째 위치에 기억시킨다.
num[idx1] = num[idx2];
num[idx2] = tmp;
}
// 최종 결과 출력
for(int no : num) {
System.out.print(no + " | ");
}
}
}
🌟예제4🌟
정수 10개를 랜덤하게 만들어서 기억하는 배열을 만들고 기억된 정수를 내림차순 정렬해서 다시 기억시키고 배열의 데이터를 출력
public class Test04 {
public static void main(String[] args) {
// 배열을 만들고
int[] num = new int[10];
// 데이터를 채우고
loop:
for(int i = 0 ; i < num.length ; i++) {
int no = (int)(Math.random() * 99 + 1);
// 중복검사
for(int j = 0 ; j < i ; j++) {
int soo = num[j];
// 중복되는 경우 숫자 생성을 다시 반복
if(soo == no) {
i--; // 회차 반복
continue loop;
}
}
// 이 행을 실행하는 경우는 중복검사를 통과한 경우
// 때문에 배열에 저장
num[i] = no;
}
// 정렬
for(int i = 0 ; i < num.length ; i++) {
// i보다는 1 큰 위치에서 뽑아야함
for(int j = i + 1 ; j < num.length ; j++) {
if(num[j] > num[i]) {
int tmp = num[i];
num[i] = num[j];
num[j] = tmp;
}
}
}
// 출력
for(int no : num) {
System.out.print(no + " | S");
}
}
}
연습문제
👑연습문제1👑
'A' - 'J' 까지의 문자를 랜덤하게 100개를 만들고 각 문자의 출현횟수를 기억할 배열을 만들어서 횟수만큼 '*'로 출력해주는 프로그램을 작성
public class Ex01 {
public static void main(String[] args) {
// 배열 만들기 A ~ J는 10개
int[] count = new int[10];
// 'A' - 'J' 랜덤하게 100개 만들기
for(int i = 0 ; i < 100 ; i++) {
int random = (int)(Math.random() * ('J' - 'A' + 1) + 'A');
int a = (int)'A';
// 횟수를 배열에 저장
count[random - a] += 1;
}
// 배열에 저장된 숫자만큼 *을 출력
for(int i = 0 ; i < count.length ; i++) {
char ch = (char)('A' + i);
System.out.print(ch + " [" + count[i] + "] : ");
// *
for(int j = 0 ; j < count[i] ; j++) {
System.out.print("*");
}
// 한줄 완료 후 줄바꿈
System.out.println();
}
}
}
Author And Source
이 문제에 관하여(국비 Day 07 : Array), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@samjan/국비-Day-07저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)