정렬 (sort)
1
2
3
4
5
6
7
8
9
10
|
public static void main(String[] args) {
int num1=20;
int num2=50;
int temp; //임시 보관소
temp=num1;
num1=num2;
num2=temp;
System.out.println("num1= "+num1);
System.out.println("num2= "+num2);
}
|
cs |
- sort 알고리즘
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
|
public static void main(String[] args) {
int[] nums = {23,7,36,12,78};
int temp;
//소트 전 자료출력
System.out.println("소트 전 자료");
for (int i=0;i<nums.length;i++) {
System.out.print(nums[i]+" ");
}
//소트 알고리즘 구현 (ASC)
for (int a=0;a<nums.length-1;a++) {
for (int b=a+1;b<nums.length;b++) {
if (nums[a] > nums[b]) {
//부등호만 바꾸면 DSC // 1,2 1,3 1,4 1,5 ~ 비교해 왼쪽부터 가장 작은 값 정렬 temp=nums[a]; //큰 값은 잠시 다른 주소에 둠
nums[a]=nums[b]; //작은 값을 왼쪽으로
nums[b]=temp;
}
}
}
//소트 후 자료출력 System.out.println("\n소트 후 자료");
for (int i=0;i<nums.length;i++) {
System.out.print(nums[i]+ " ");
}
}
|
cs |
다차원 배열 - 2차원 배열
cf. 1차원 배열 : int[] nums new int[5];
int[][] nums = new int[2][3]; //2행 3열
=> 행렬과 유사
0,0 0,1 0,2
1,0 1,1 1,2
=> 각 행마다 다른 주소번지 가리킴 (=참조값)
1행 0 1 2 => 주소 a
2행 0 1 2 => 주소 b
int[][] scores = new int[2][]; // 행 두개 scores에 넣음, 열은 pass => 주소 두개 참조
scores[0]=new int[2]; (0,0) (0,1) // 첫 번지에 두개 할당
scores[1]=new int[3]; (1,0) (1,1) (1,2) // 둘째 번지에 세개 할당
=>행렬과는 다름
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public static void main(String[] args) {
int[][] nums = new int[2][3];
nums[0][0]=10;
nums[1][1]=50;
System.out.println(nums.length); //2 - 각 행마다 하나의 주소번지 가리킴 (행 수)
System.out.println(nums[0].length); //3 - 주소번지가 갖고 있는 칸들 (열 수)
for (int a=0;a<nums.length;a++) {
for(int b=0;b<nums[a].length;b++) {
System.out.print(nums[a][b]+" ");
}
}
}
|
cs |
//
2
3
10 0 0 0 50 0
※ 배열 인덱스 오류
int[] nums= new int[5]; //크기, 갯수가 5
nums[0]=10;
nums[5]=50; //인덱스는 0~4까지만 존재 => 5는 존재X
기타
- 메모장 기능
.LOG 작성 후 저장 => 저장한 날짜, 시간 출력
.LOG
오후 7:47 2022-04-26
김철수대리 우리상사 홍길동 전화
오후 7:49 2022-04-26
- 엑셀
visual basic => 함수 추가 개발 가능
- 운영체제
서버용 운영체제: 맥 OS(operating system), 리눅스, 솔라리스
일반 운영체제: 윈도우
과거 운영체제: CLI 체제 (Command Line Interface) => CMD 명령 프롬프트
명령 프롬프트 용어 :
cd.. => 상위폴더로 빠져나옴
cd 하위폴더명 => 하위폴더로 이동
mkdir 폴더명 => 폴더 생성
rmdir 폴더명 => 폴더 삭제
move test.txt c:\hk => 파일 이동
- 기타
윈도우 검색창:
mstsc => 원격 연결
\\Desktop-6018gmk => 타 컴퓨터 해당 폴더로 이동
-mySQL
php에 어울림
-네트워크
랜선(네트워크선) => 자료 공유 가능
-자바
JDK (자바 개발도구 패키지)
JRE (라이브러리) : 자바의 실행환경
JVM (자바 가상 머신) : 실행파일이 운영체제와 맞지 않더라도 변환 => 자바는 여러 운영체제에서 이용 가능
//
- 로또 + 알고리즘
로또 1~45까지 랜덤숫자 6개
중복값 없애기 (sort 알고리즘 활용)
=>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public static void main(String[] args) {
boolean run=true;
int[] lotto=new int[6];
while (run) {
for (int i=0;i<lotto.length;i++) {
lotto[i] = (int)(Math.random()*45)+1;
}
run = false;
for (int a= 0;a<lotto.length-1;a++) {
for (int b=a+1;b<lotto.length;b++) {
if (lotto[a]==lotto[b]) {
run = true;
}
}
}
}
for (int i=0;i<lotto.length;i++) {
System.out.println(lotto[i]);
}
}
|
cs |
- 소트 알고리즘 문제
int[] scores = {78,96,80,60,70};
String[] names = {"김철수", "홍길동","이영희","박찬호","이영표"};
답:
** 시험 자료 출력 **
김철수 - 78
홍길동 - 96
이영희 ~
** 성적순 자료 출력 **
1등: 홍길동 - 96
2등: 이영희 - 80
3등: 김철수 - 78
~
=>
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
32
|
public static void main(String[] args) {
int[] scores = {78,96,80,60,70};
int temp;
String strTemp;
String[] names = {"김철수", "홍길동","이영희","박찬호","이영표"};
//소트 전 자료 출력
System.out.println("** 시험 자료 출력 **");
for (int i=0;i<scores.length;i++) {
System.out.println(names[i] + " - " + scores[i]);
}
//소트 알고리즘 구현
for (int a=0;a<scores.length-1;a++) { //5개 자료 비교할 때 4번만 비교함
for (int b=a+1;b<scores.length;b++) {
if (scores[a]<scores[b]) {
temp=scores[a];
scores[a]=scores[b];
scores[b]=temp;
strTemp=names[a];
names[a]=names[b];
names[b]=strTemp;
}
}
}
//소트 후 자료 출력
System.out.println("** 성적순 자료 출력 **");
for (int i=0;i<scores.length;i++) {
System.out.println((i+1) + "등 " + names[i] + " - " + scores[i]);
}
}
|
cs |
- 다차원배열 magic square 문제
홀수x홀수 행렬만 가능
8 1 6
3 5 7
4 9 2
a+b+c=15
010 우상대각선 010 010
000 => 000 => 300
000 002 002
행 없으면 오른쪽 마지막행에
열 없으면 맨왼쪽 열에
둘다 없으면 두번 내려오고 왼쪽으로
=>
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
public static void main(String[] args) {
int[][] magic = new int[3][3];
int row = 0; //행 변수
int col=magic[0].length/2; //열 변수 = 3/2
int num=1; //배열에 넣을 숫자
magic[row][col]=num; // 1을 (0,1)에 대입
for (num=2;num<=magic.length*magic[0].length;num++) {
// magic=행의 갯수 magic[0]=열의 갯수 => 3*3=9 // 우상 대각선으로 이동한다
row--;
col++;
//☆1. 행, 열 둘다 존재하지 않을 경우
if (row<0 && col==magic[0].length) {
row+=2;
col--;
}
//행이 존재하지 않을 경우
if(row<0) {
row=magic.length-1;
}
//열이 존재하지 않을 경우
if(col==magic[0].length) {
col=0;
}
//이미 값이 존재할 경우
if (magic[row][col] != 0) {
//이차원배열은 값 안 정해졌을 때 0으로 돼있음 row+=2;
col--;
}
magic[row][col]=num;
}//for문
//콘솔에 출력
for (int a=0;a<magic.length;a++) {
for (int b=0;b<magic[a].length;b++) {
if (magic[a][b]<10) {
System.out.print(" "+magic[a][b]+" ");
} else {
System.out.print(magic[a][b]+" ");
}
}
System.out.println();
}
}
}
|
cs |
//
2차원 배열이 조금 헷갈리긴 한데 선생님이 말씀하신대로 행렬 생각하면서 하니까 또 괜찮은 것 같기도 하고..
중1 수학의 위엄
'Programming > 국비학원' 카테고리의 다른 글
220429 - 버전 관리 - CLI, GUI (0) | 2022.04.29 |
---|---|
220427 - github, 이것이 자바다 1 복습 (0) | 2022.04.28 |
220425 - do while, 참조, 비트 이동 연산자, 삼항 연산자, 배열, 향상된 for문, 정렬 (0) | 2022.04.26 |
220422 - 반복문 while, continue, break, 중첩반복문, 라벨링 (0) | 2022.04.23 |
220421 - 연산자, 조건문, 반복문 (0) | 2022.04.22 |