정보보안공부
*** ArrayInArray -> 2차원배열 -> 2차행렬을 표현할떄 for문에서 score.length 는 행의크기를 나타낸다. -> 열의 크기는 score[i].length로 표현한다. -> score[i] : i번째행 배열의 주소 참조형 변수 -> score[1][i] : 두번째 배열의 i열의 값 *** ArrayArray1 -> 배열을 이용해 과목별 성적의 총합과 평균구하기 -> 2차열 배열을 선언하고 (" " + (i+1) + "\t")로 번호를 표시한다. -> for(int i=0;i for문안에 for문을 선언하여 한행에 각각의 열을 표현한다.(score[i].length로) -> 열을 표현할때 sum += score[i][j]를 사용해 한행의 값을 다더한다 -> 첫번째 for문안에 sum..
*** ArrayAbout -> 배열선언과 배열의 크기선언 ->int [] b; -> 배열의 이름을 선언한다. ->b = new int[5]; -> 배열의 크기를 선언한다. ->int [] a = {10,20,30,40,50}으로 바로선언 가능 ->a[0] : a라는 배열의 첫번째 값 *** ArrayEx1 -> 배열복사 -> int [] arr = new int[10] : new는 새로운 객체생성 int[10]은 arr배열의 크기 -> Math.random()*x : 0부터 x미만 까지 랜덤숫자 -> \t를 사용해 숫자별로 띄여쓰기적용 -> if( max if( min > arr[i] ) min = arr[i] : 최소값찾기 -> dest1..
*** random함수 식 -> (Math.random()*6) 을이용한 랜덤수 설정 *** StringEx -> String 변수 = "문자열"; 으로 선언한 것은 참조와 문자열이 다같지만 -> String 변수 = new String("문자열") 으로 선언한 것은 참조는다르고 문자열은 같다. *** StringAbout -> String 매소드에 따라 원하는 값 출력 -> length()는 문자열의 길이 -> substring(x, y)는 x번째 인덱스부터 y-1번째 깢 -> toUpperCase()는 대문자로 -> toLowerCase()는 소문자로 -> indexOf("x")는 x문자의 인덱스위치 -> lastIndexof("Day")는 마지막에위치한 Day의 인덱스 위치 *** StringCha..
*** WhileEx -> While을 이용한 반복문 -> While(조건) 참이면 조건이 계속반복 -> 거짓이되는순간 While문 탈출 -> i=1부터 sum 에 i에 1씩 더한값이 계속 더해진다. -> i가 1부터 100까지 sum에 더해지고 i++에 101이 되는순간 While문 조건에 거짓이 되므로 while문 탈출 -> While(조건) 뒤에 ; 세미콜론 쓰지 않도록 주의 ***WhileEx2 -> While문을 이용한 반복문 -> Scanner s 를 통해 val 값을 입력할수있다. -> 입력한 값이 total에 계속 더해진다 -> while문 에 0이입력되면 while문이 거짓이 되므로 while문 탈출 -> 처음 선언할때 int val = 0; 으로 선언하면 while문이 아예 실행x ->..
*** IfTest0 -> If를 이용해 짝수와 홀수 구분하기 -> if(조건), else if(조건), else 사용시 뒤에 ; 세미콜론 쓰지않도록 주의 *** IfTest1 -> If를 이용해 5의배수인지 5의배수가아닌 3의배수,2의배수인지 확인 -> Scanner s를이용해 변수입력 --> %연산자는 나머지를 의미한다 5로나눴을때 나머지가 0이면 5의배수 그게 아니라면 5의 배수가 아니다 문구를 출력한다. --> 그 다음 if문으로 5의배수 3의배수 2의배수 아무것도 아니면 Unknown을 출력한다. --> i의 값을 아래와같이 Scanner로 작성할 수 있다. *** IfElseEx -> if와 else if , else를 이용해 문장작성 -> if사용시 return을 통해 다음문장이어서 실행 -..
***Op1 -> 자료형 변환에 따른 결과 --> 첫번째 경우 정수 나누기 정수 이므로 1의값이 num2에 적용되지만 num2는double 형이므로 1.0의 값이 저장된다. --> 두번째 경우 (double)부분 형변환 연산자가 우선순위가 높기때문에 먼저실행되어 5.0 / 4.0 의 값인 1.25가 결과값이 된다. --> 세번째 경우 1.8을 int형으로 2.9를 int형으로 하면 1+2가되므로 3이 결과값이다. ***Op2 -> 연산자와 단항 연산자 ->변수++ : 변수값을 출력한뒤 1을더한다. ->--변수 : 변수값에서 1을 뺀값을 출력한다. ***Op3 -> shift 연산자 -> >>,> : 오른쪽으로 갈땐 앞에 부호에 따라 다르다(뒤에 0을 지운다) -> 나누기 2 ***Op4 -> 조건 연산자..
*** 상속을 사용해 학생과 교수의 데이터 표현하기 -> Person을 상속받아 Professor(교수)와 Student(학생) 클래스를 작성 -> getdata를 이용해 해당정보를 입력받는다. -> split()을 사용해 입력받은 정보를 구분한다. -> putdata로 해당정보 순서대로 출력 # 결과 - 교수 -> 첫번쨰 교수이름 두번쨰 담당과목 세번째 나이 네번째 교수번호 # 결과 - 학생 -> 첫번째 학생이름 두번째 학생나이 세번째 3과목점수합 네번째 학생번호
*** 합병정렬 - 분할 정복기법 - 제자리 정렬이 가능하다. -> divide함수를 이용해 주어진 리스트를 나누어준다. -> // 연산을 이용해 나머지값을 버린 중앙값 mid를 구한다. -> mid값을 기준으로 배열을 나눈다. -> 리스트의 길이가 3개이상일 경우 다시 divide함수를 이용해 계속 나눈다. -> 합병정렬을 이용해 left리스트, right리스트의 원소가 소모될때 까지 진행한다. -> 0번째 인덱스를 비교한뒤 최소값은 nlists에 저장한뒤 remove를 이용해 지워준다. -> nlists는 임시로 저장하는 곳이라고 생각하자 merge함수가 불러질때마다 []로 초기화되는것에 주의한다. -> left와 right의 첫번째 원소들을 모두비교한뒤 한쪽 원소가 모두 비어지면 반대쪽 원소들을 n..